在加载时运行ng-change功能以进行预先选中的复选框

时间:2016-04-12 18:08:07

标签: javascript jquery angularjs checkbox

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

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

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

3 个答案:

答案 0 :(得分:0)

您不需要这样做,您的模型会自动执行此操作,比如说

$ scope.customer = customer;

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

会自动照顾

答案 1 :(得分:0)

如果你想拥有一个在加载时和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>

答案 2 :(得分:0)

ng-change将不会执行,除非用户已按照角度文档here中的说明更改了输入。问题是你可以手动触发ng-change,但通常没有建议,它被认为是dirty way and terrible practice。添加观察程序并检测对模型所做的任何更改将更加合适。

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