我在同一页面上有两个控制器。我想要实现的是,如果特定值是1呼叫控制器1,如果0是控制器2.但问题是我在控制器内部无法访问的控制器内部获得价值,那么我该如何实现呢?
答案 0 :(得分:0)
这种情况需要一个服务,可以在控制器之间共享。
您所要做的就是将服务注入两个控制器并更新服务中的变量。
angular.module('app').service('myService', function() {
var self = this;
self.isActive;
self.setActive = function(val) {
self.isActive = val;
};
self.getActive = function() {
return self.isActive;
})
. controller('first', function(myService) {
var isActive = myService.getActive();
})
. controller('second', function(myService) {
var isActive = myService.getActive();
})
两个控制器都具有相同的值,您只需在应用程序的生命周期内通过控制器来管理它们。
请注意,您可以根据逻辑在服务中执行任何操作,只需与所需的控制器共享服务即可。函数更有可能处理你分成不同控制器的逻辑。
// Inside the service
self.handleActive = function(isActive) {
if (isActive) {
// Do something
} else {
// Do other
}
};
答案 1 :(得分:0)
为此目的使用指令
$connection
在html中使用