为什么ng-change总是通过' true'从模型

时间:2016-02-11 18:32:41

标签: javascript angularjs switchery

当使用ng-change指令并将模型信息传递给函数时,ng-change总是passess:true;如果开关是打开/关闭的话。我希望根据开/关状态接收真假两种状态。

我正在使用基于switcheryangular-ui-switch

的自定义切换指令
<switch 
    ng-model="app.layout.isNavbarFixed"
    ng-change="uiSettingTypeChange('isNavbarFixed',
         {{app.layout.isNavbarFixed}})"
    class="green">
 </switch>

$scope.uiSettingTypeChange = function(name, setting) {
  console.log(name +' | ' + setting);
};

console.log始终输出:

isNavbarFixed | true

1 个答案:

答案 0 :(得分:2)

ng-change属性的值已经是一个角度表达式,因此不需要{{}}。我猜测正在发生的是,角度看到{{}}并因此评估它。因此,在这一点上,ng-change有效看起来像这样:

ng-change="uiSettingTypeChange('isNavbarFixed',true)"

然后,当更改事件触发时,它只是在每次都传递真实。你想要的应该看起来更像这样:

ng-change="uiSettingTypeChange('isNavbarFixed',app.layout.isNavbarFixed)"