是否可以将范围从一个控制器文件传递到另一个文件

时间:2017-01-10 07:21:46

标签: javascript java angularjs d3.js crossfilter

我有两个控制器1.基本控制器和2.缺陷控制器,两者都是不同的文件。我想将范围值或变量从一个控制器传递到另一个控制器。 如果同一个文件中的两个控制器意味着我们可以共享它,但问题是文件是不同的。

如何将范围从一个控制器传递到另一个控制器?

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中
相关问题