Angularjs - ngSwitch $broadcast



在我的应用程序中,我有一个ng开关,在其中一个选项卡中,我有一个带有第二个控制器的div,如下所示:

<div ng-controller="first">
  <div ng-switch on="tab">
    <div ng-switch-default></div>
    <div ng-switch-when="2">
      <div ng-controller="second">
      </div>
    </div>
  </div>
</div>

我正在使用 $scope.$broadcast 与第二个控制器通信,但它在 ng-switch 内,因此似乎不起作用。第一个问题为什么?

当我将第二个控制器从ngswitch链中取出时,它可以工作。但是当我更改 $scope.tab 值时没有任何反应。它应该再次被 ng-switch 捕获。第二个问题为什么?有人可以帮助我吗?谢谢

首先:ng-swith指令的工作方式类似于javascript中的开关大小写。当$scope.tab = 1时,"分离"控制器不会在DOM中呈现。所以没有控制器可以与之通信...

第二:如果将"第二个"控制器放在开关外壳之外,$scope.tab对其没有影响。

试着用语言解释你想做什么。您的代码中没有逻辑

最新更新