【问题标题】:Is it possible to pass the scope from one controller file to another file是否可以将范围从一个控制器文件传递到另一个文件
【发布时间】:2017-05-24 14:46:17
【问题描述】:

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

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

【问题讨论】:

  • 使用服务是可行的方法,但也可以使用$rootScope 来完成(不建议,但只是抛出可能性)

标签: javascript java angularjs d3.js crossfilter


【解决方案1】:

使用服务是控制器之间通信的最佳方式。 https://docs.angularjs.org/guide/services

【讨论】:

  • 是的,我对这两个文件都使用了 REST 服务,但是我如何才能将共同的价值从一个控制器共享到另一个控制器。
【解决方案2】:

这里是如何 写一个服务

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
})

请确保在初始化 angular 后将这两个文件包含在 html 中

【讨论】:

  • 是否可以从两个不同的文件中使用这两个控制器?
猜你喜欢
  • 2018-02-21
  • 1970-01-01
  • 1970-01-01
  • 2014-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多