AngularJS:初始复选框值不在模型中

时间:2013-09-17 13:15:25

标签: javascript angularjs checkbox coffeescript

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

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

现在我希望将其初始值'No'(因为未选中)绑定到模型而不必单击复选框。除了在控制器中手动设置模型值还是使用ngInit

之外,还有其他方法吗?

我的脚本应该使用不同的表单,因此手动设置模型变量是没有选择的。 ngInit方法似乎相当不优雅。

1 个答案:

答案 0 :(得分: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);
            }
        }
    };
});