如果ng-if条件为真,是否可以调用控制器?

时间:2017-09-11 07:19:11

标签: angularjs

我在同一页面上有两个控制器。我想要实现的是,如果特定值是1呼叫控制器1,如果0是控制器2.但问题是我在控制器内部无法访问的控制器内部获得价值,那么我该如何实现呢?

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中使用