Các Controller cũng có thể được gắn liền với DOM bằng các cách khác nhau. AngularJS call one method of controller trong một controller khác.
angularjs-app-modules-controllers-view
Có thể có nhiều tình huống khó khăn trong đó bạn có thể muốn một controller cha và con đơn giản có khả năng giao tiếp với các controller chính và con trong ứng dụng AngularJS của bạn.
Bước: 1. $rootScope.$emit() và $rootScope.$broadcast()
<h3>how to call one controller from another controller in angularjs</h3>
<body ng-app="myApp">
ng-controller="ProductCtrl" class="ng-scope">
// ProductCtrl
ng-controller="Sibling1" class="ng-scope">
// Sibling first controller
ng-controller="Sibling2" class="ng-scope">
// Sibling Second controller
ng-controller="category" class="ng-scope">
// category controller
</div>
</div>
</body>
Bước: Mã AngularJS
var app = angular.module('myApp',[]);//We will use it throughout the example
app.controller('category', function($rootScope) {
$rootScope.$emit('categoryEmit', 'category calling Product');
$rootScope.$broadcast('siblingAndProduct');
});
app.controller('Sibling1', function($rootScope) {
$rootScope.$on('categoryEmit', function(event, data) {
console.log(data + ' Inside Sibling one');
});
$rootScope.$on('siblingAndProduct', function(event, data) {
console.log('broadcast from category in Product');
});
});
app.controller('Sibling2', function($rootScope) {
$rootScope.$on('categoryEmit', function(event, data) {
console.log(data + ' Inside Sibling two');
});
$rootScope.$on('siblingAndProduct', function(event, data) {
console.log('broadcast from category in Product');
});
});
app.controller('ProductCtrl', function($rootScope) {
$rootScope.$on('categoryEmit', function(event, data) {
console.log(data + ' Inside Product controller');
});
$rootScope.$on('siblingAndProduct', function(event, data) {
console.log('broadcast from category in Product');
});
});
Bước: 3. Nếu Controller thứ hai là category, bạn có thể sử dụng giao tiếp Category Product
ng-controller="ProductCtrl">
ng-controller="categoryCtrl">
</div>
AngularJS
app.controller('ProductCtrl', function($scope) {
$scope.value='Its Product';
});
app.controller('categoryCtrl', function($scope) {
console.log($scope.value);
});
Bước: 4. Sử dụng Dịch vụ
app.service('communicate',function(){
this.communicateValue='First';
});
app.controller('ProductCtrl',function(communicate){//Dependency Injection
console.log(communicate.communicateValue+" Product Trans");
});
app.controller('categoryCtrl',function(communicate){//Dependency Injection
console.log(communicate.communicateValue+" category Trans");
});
Bước: 5. Loại hack – với sự giúp đỡ của angular.element()
id='Product' ng-controller='ProductCtrl'>{{varProduct}}
ng-click='getValueFromcategory()'>Click to get ValueFormcategory
id='category' ng-controller='categoryCtrl'>{{varcategory}}
ng-click='getValueFromProduct()'>Click to get ValueFormProduct
</div>
<p>how to call one controller from another controller in angularjs</p>
gọi một controller từ controller khác
app.controller('ProductCtrl',function($scope){
$scope.varProduct="First Product";
$scope.getValueFromcategory=function(){
var categoryScope=angular.element('#category').scope();
console.log(categoryScope.varcategory);
}
});
app.controller('CarentCtrl',function($scope){
$scope.varcategory="First category";
$scope.getValueFromProduct=function(){
var ProductScope=angular.element('#Product').scope();
console.log(ProductScope.varProduct);
}
});
- Bài đăng blog này ban đầu được xuất bản tại: https://www.pakainfo.com