AngularJS-ng-checked不会触发ng-change

戴维丹

基本上,我有一个表,每行都有一个文本输入和一个复选框,该复选框为输入分配一个默认值。我遇到的问题是我想拥有一个复选框来检查所有复选框,并且已经完成了,但是它没有对ngChange中的表达式求值。

这就是我所拥有的:

1)Controller.js:

$scope.formData = {};
$scope.def_income = [];
$scope.master = false;
$scope.formData.income = [{ from:"", to:"", income:"" }]
$scope.addSal = function () {
    this.formData.income.push({from:'',to:'',income:''});
};
$scope.delSal = function (index) {
    if (index != 0) this.formData.income.splice(index,1);
}
$scope.masterToggle = function () {
    this.master = this.master ? false : true;
}
$scope.defIncome = function (index) {
    if (this.def_income[index]) this.formData.income[index].income="Default";
    else this.formData.income[index].income = "";
}

2)index.html:

<a href="" ng-click="addSal()">Add</a>
<a href="" ng-model="master" ng-click="masterToggle()">Check all</a>
<table>
    <thead>
        <th>From</th>
        <th>To</th>
        <th>Income</th>
    </thead>
    <tbody>
        <tr ng-repeat="income in formData.income">
            <td><input kendo-date-picker class="form-control" ng-model="income.from" placeholder="From" /></td>
            <td><input kendo-date-picker class="form-control" ng-model="income.to" /></td>
            <td><input class="form-control" ng-model="income.income" /></td>
            <td>Default income <input type="checkbox" ng-model="def_income[$index]" ng-checked="master" ng-change="defIncome($index)" /></td>
            <td><a href="" ng-show="$index != 0" ng-click="delSal($index)">Delete</a></td>
        </tr>
    </tbody>
</table>

问题在于,当执行masterToggle函数时,它会有效地切换$ scope.master值,并且在ng-checked中对其求值,选中了复选框,但是当checkbox值更改时不应该求值的defIncome函数。

我对AngularJS真的很陌生(不到一周),因此,如果我应用了一些不良做法,请随时指出:)

更新1:

因此,我遵循了embee的建议,该建议奏效了,我想知道是否还有更好的方法,这就是我所做的:

$scope.masterToggle = function () {
    this.master = this.master ? false : true;
    for (var j = 0; j <= this.formData.salarios.length-1; j++) {
        this.formData.salarios[j].salario = $scope.master ? "Salario mínimo" : "";
    }
}
恩比

ngChange docs中

当用户更改输入时评估给定的表达式。当值更改来自模型时,不对表达式求值。

在您的情况下,值的更改来自模型,而不是在用户更改已将ng-change置于其上的“默认收入”复选框的输入时,因此不评估表达式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AngularJS:触发ng-change,ng-keyup或$作用域。

来自分类Dev

$ watch与ng-change,ng-checked等的角度触发变化

来自分类Dev

AngularJS ng级javascript动画不会触发

来自分类Dev

ng-change延迟,angularjs

来自分类Dev

AngularJS-在每个下拉选择上触发ng-change

来自分类Dev

手动触发AngularJs ng-change事件

来自分类Dev

AngularJS-在每个下拉选择上触发ng-change

来自分类Dev

更改模型时AngularJS触发ng-change

来自分类Dev

ng-checked和ng-change单选按钮无法一起使用-angularjs

来自分类Dev

AngularJS-基于ng-model值触发ng-change

来自分类Dev

ng-click change route in angularjs with param

来自分类Dev

Angularjs 在 ng-change 上更新变量

来自分类Dev

从 ng-Change 调用 AngularJs 服务

来自分类Dev

AngularJS:添加模板的ng-click不会触发

来自分类Dev

在控制器中初始化ng-model时不触发Angularjs select ng-change

来自分类Dev

AngularJs:如何为下拉菜单中ng-otons的选定值的默认值触发ng-change事件

来自分类Dev

如何在AngularJS中的指令测试中触发ng-change

来自分类Dev

jQuery UI Selectmenu后未触发的AngularJS ng-change事件

来自分类Dev

AngularJS-用控制器初始化触发ng-change

来自分类Dev

angularjs ng-change 函数不会在 html 输入中弹出

来自分类Dev

ng-click不会在AngularJS中触发,而onclick会触发

来自分类Dev

ng-click不会在AngularJS中触发,而onclick会触发

来自分类Dev

如何从angularjs中的select的ng-change调用服务方法?

来自分类Dev

何时在Angularjs中使用$ watch或ng-change

来自分类Dev

在AngularJS中输入ng-change时如何提交表单

来自分类Dev

AngularJS从ng-change事件重新加载ngTable

来自分类Dev

AngularJS:在更改选择元素之前调用ng-change

来自分类Dev

AngularJS REST Api选择框ng-change

来自分类Dev

使用AngularJS动态生成输入字段+ ng-change绑定

Related 相关文章

  1. 1

    AngularJS:触发ng-change,ng-keyup或$作用域。

  2. 2

    $ watch与ng-change,ng-checked等的角度触发变化

  3. 3

    AngularJS ng级javascript动画不会触发

  4. 4

    ng-change延迟,angularjs

  5. 5

    AngularJS-在每个下拉选择上触发ng-change

  6. 6

    手动触发AngularJs ng-change事件

  7. 7

    AngularJS-在每个下拉选择上触发ng-change

  8. 8

    更改模型时AngularJS触发ng-change

  9. 9

    ng-checked和ng-change单选按钮无法一起使用-angularjs

  10. 10

    AngularJS-基于ng-model值触发ng-change

  11. 11

    ng-click change route in angularjs with param

  12. 12

    Angularjs 在 ng-change 上更新变量

  13. 13

    从 ng-Change 调用 AngularJs 服务

  14. 14

    AngularJS:添加模板的ng-click不会触发

  15. 15

    在控制器中初始化ng-model时不触发Angularjs select ng-change

  16. 16

    AngularJs:如何为下拉菜单中ng-otons的选定值的默认值触发ng-change事件

  17. 17

    如何在AngularJS中的指令测试中触发ng-change

  18. 18

    jQuery UI Selectmenu后未触发的AngularJS ng-change事件

  19. 19

    AngularJS-用控制器初始化触发ng-change

  20. 20

    angularjs ng-change 函数不会在 html 输入中弹出

  21. 21

    ng-click不会在AngularJS中触发,而onclick会触发

  22. 22

    ng-click不会在AngularJS中触发,而onclick会触发

  23. 23

    如何从angularjs中的select的ng-change调用服务方法?

  24. 24

    何时在Angularjs中使用$ watch或ng-change

  25. 25

    在AngularJS中输入ng-change时如何提交表单

  26. 26

    AngularJS从ng-change事件重新加载ngTable

  27. 27

    AngularJS:在更改选择元素之前调用ng-change

  28. 28

    AngularJS REST Api选择框ng-change

  29. 29

    使用AngularJS动态生成输入字段+ ng-change绑定

热门标签

归档