我有一个带有这样一个复选框的表单:
<input type="checkbox" name="publish" id="publish" ng-model="data.publish" ng-true-value="Yes" ng-false-value="No"/>
现在我希望将其初始值'No'
(因为未选中)绑定到模型而不必单击复选框。除了在控制器中手动设置模型值还是使用ngInit
?
我的脚本应该使用不同的表单,因此手动设置模型变量是没有选择的。 ngInit
方法似乎相当不优雅。
答案 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);
}
}
};
});