为预先选中的复选框在加载时运行ng更改函数

Run ng-change functions on load for pre-checked checkboxes

本文关键字:运行 ng 函数 加载 复选框      更新时间:2024-05-28

我在ng-change中有一个函数,它在每次选中复选框时都会执行(手动)。

现在,我希望在加载时预先检查复选框,并更改ng中的函数以执行(在加载时)。

我可以采取哪些方法来实现这一目标?

你不需要这么做,你的模型会自动完成,比如

$scope.customer=客户;

<input type='checkbox' ng-model='customer.active' /> Is Active

它将自动进行

如果您想要一个在加载时以及onChange事件期间触发的函数,您可以使用指令ng-init

创建连接到您的作用域的onLoad和onChange函数:

$scope.onLoad = function(params) {
  // do some init functionality and call onChange functionality
  onChange();
}
$scope.onChange = function(value) {
  // do function when a combobox is chaned
}

在HTML模板中,你必须绑定那些方法

<div ng-init="onLoad()">
  <input type='checkbox' ng-model='someModel' ng-change="('1')"/> Is one
  <input type='checkbox' ng-model='someModel' ng-change="('2')"/> Is two
  <input type='checkbox' ng-model='someModel' ng-change="('3')"/> Is three
</div>

ng-change将不会执行,除非用户按照此处的角度文档中的说明更改了输入。问题是,你可以手动触发ng更改,但通常不建议这样做,而且这被认为是一种肮脏的方式和可怕的做法。添加一个观察者并检测对模型所做的任何更改将更合适。

$scope.$watch("myModel", function(newValue, oldValue){
    // do something
});