为什么ng-change总是从模型中传递“true”

Why does ng-change always pass 'true' from model

本文关键字:true 模型 ng-change 为什么      更新时间:2023-09-26

当使用ng-change指令并将模型信息传递给函数时,ng-change总是预览:true;如果开关是开/关的。我想根据开/关状态接收真和假状态。

我正在使用基于开关和角度 ui 开关的自定义开关指令

<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);
};

控制台.log始终输出:

isNavbarFixed | true

ng-change 属性的值已经是一个角度表达式,因此不需要{{}}。我猜正在发生的事情是,角度看到{{}},从而评估它。因此,此时 ng-change 有效如下所示:

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

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

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