我有两个控制器1.基本控制器和2.缺陷控制器,两者都是不同的文件。我想将范围值或变量从一个控制器传递到另一个控制器。 如果同一个文件中的两个控制器意味着我们可以共享它,但问题是文件是不同的。
如何将范围从一个控制器传递到另一个控制器?
答案 0 :(得分:0)
使用服务是控制器之间通信的最佳方式。 https://docs.angularjs.org/guide/services
答案 1 :(得分:0)
这是怎么回事 写一项服务
var app = angular.module('myApp',[]);
app.service('sharedService', function(){
this.shared = null;
return {
setShared: function(val){this.shared = val;},
getShared: function(){return this.shared;}
}
})
现在将此服务注入您的控制器
//controller in file one
var app = angular.module('myApp'); // don't use [] if module is already inititalized
app.controller('settingCtrl', function($scope, sharedService){
var shared = "Biscuits";
sharedService.setShared(shared);
})
//controller in file two
var app = angular.module('myApp');
app.controller('readingCtrl', function($scope, sharedService){
var shared= sharedService.getShared();
console.log(shared); // 'Biscuits', recieved from other controller
})
确保在初始化角度
后将这两个文件包含在html中