是否可以通过模型控制“readonly”这样的属性?

时间:2014-03-05 22:43:31

标签: angularjs

是否有办法通过模型来控制像'readonly'这样的属性的值,这个属性不接受可以分配给它的值? (我知道readonly =“readonly”是有效的XHTML,但它没有帮助。)

下面,'name'和'value'可以通过模型更改,但'readonly'怎么可能?

<input type="text" name="country" value="Norway" readonly>

3 个答案:

答案 0 :(得分:2)

ngReadonly这样做:

<input type="text" name="country" value="Norway" ng-readonly="isCountryReadOnly">

答案 1 :(得分:2)

是的,您可以使用ng-readonly指令:

<input type="text" name="country" value="Norway" ng-readonly="expression">

这将使输入只读取expression的任何真值。

答案 2 :(得分:0)

有许多具有相应指令的布尔属性,即selectedcheckeddisabledreadonlyrequiredopen。如果您需要某种自定义布尔属性,则必须添加手表并手动设置:

scope.$watch(attr['myAttrName'], function (value) {
    attr.$set('attrName', !!value);
});

这将评估自定义属性中包含的表达式,并在表达式求值为truthy值时显示所需的布尔属性。