首页 > 解决方案 > 页面加载时触发单选按钮更改

问题描述

我有这个单选按钮,在页面加载时选中:

<input ng-init="model.PeriodType = 'Accounting Period'"
       name="accperiodradio"
       id="accperiod"
       type="radio"
       ng-model="model.PeriodType"
       value="Accounting Period" />

和这个更改事件处理程序:

$scope.$watch('model.PeriodType', function (value) {
    if (value == 'Accounting Period') {
        //do stuff
        }
    }
});

$scope.$watch函数在选择另一个单选按钮然后选择会计期间单选按钮时触发,但在页面加载时不会触发,因为它默认被选中。

如何$scope.$watch在页面加载时执行该功能?

标签: javascriptangularjs

解决方案


ng-init可以滥用该指令在模板中添加不必要的逻辑量。只有少数适​​当的用途ngInit

<input ̶n̶g̶-̶i̶n̶i̶t̶=̶"̶m̶o̶d̶e̶l̶.̶P̶e̶r̶i̶o̶d̶T̶y̶p̶e̶ ̶=̶ ̶'̶A̶c̶c̶o̶u̶n̶t̶i̶n̶g̶ ̶P̶e̶r̶i̶o̶d̶'̶"̶
       name="accperiodradio"
       id="accperiod"
       type="radio"
       ng-model="model.PeriodType"
       value="Accounting Period" />

而是从控制器初始化模型:

$scope.model.PeriodType = "Accounting Period";

有关详细信息,请参阅


推荐阅读