3

我有一个带有这样的复选框的表单:

<input type="checkbox" name="publish" id="publish" ng-model="data.publish" ng-true-value="Yes" ng-false-value="No"/>

现在我想将其初始值'No'(因为它未选中)绑定到模型而无需单击复选框。除了在控制器中手动设置模型值或使用之外,还有其他方法ngInit吗?

我的脚本应该适用于不同的形式,因此无法手动设置模型变量。而且该ngInit方法似乎相当不雅。

4

1 回答 1

0

也许一个像这样工作的指令:

<input type="checkbox" ng-model="..." init-cb ... />

下面的代码应该做到这一点:

m.directive("initCb", function() {
    return {
        require: ["ngModel"],
        scope: false,
        link: function(scope, element, attrs, controllers) {
            var ngModel = controllers[0],
            if( element[0].checked ) {
                ngModel.$setViewValue(attrs.ngTrueValue || true);
            }
            else {
                ngModel.$setViewValue(attrs.ngFalseValue || false);
            }
        }
    };
});
于 2013-09-17T13:36:14.500 回答