AngularJS ng-switch-trigger在其自己的ng-switch-wrapper中

时间:2014-05-13 08:35:45

标签: javascript angularjs triggers wrapper ng-switch

我正在尝试切换2个按钮,这些按钮是他们自己的开关触发器。为了更好地理解:

<span ng-switch on="patientSwitch">
    <span ng-switch-when="edit">
        <button ng-click="patientSwitch='save'">save</button>
    </span>
    <span ng-switch-when="save">
        <button ng-click="patientSwitch"='edit'">edit</button>
    </span>
</span>

这是一些jsFiddle:http://jsfiddle.net/g7vKz/

1 个答案:

答案 0 :(得分:1)

改为使用对象:

myApp.controller("PatientCtrl", function($scope) {
  $scope.viewModel = { patientSwitch: "edit" };
});

<span ng-switch on="viewModel.patientSwitch">
    <span ng-switch-when="edit">
        <button ng-click="viewModel.patientSwitch='save'">save</button>
    </span>
    <span ng-switch-when="save">
         <button ng-click="viewModel.patientSwitch='edit'">edit</button>
    </span>
</span>

演示: http://jsfiddle.net/M7EX2/

ngSwitch创建一个新范围,这意味着除非您使用对象,否则由于原型继承在JavaScript中的工作方式,您将遇到此问题。

可以找到关于这个主题的非常好的帖子here