我已经定义了一个自定义复选框指令,我想从另一个属性中访问一个属性。
请注意以下示例中的disabled
和ng-class
属性:
<checkbox ng-model="isChecked"
disabled="<some angular expression>"
ng-class="{'fresh': isChecked && !disabled}"/>
此外,该指令的范围如下所示:
scope: {
ngModel: "=",
disabled: "=",
}
这可能吗?
修改
让我的问题更加明确:在this fiddle中,我说明了如何在disabled
属性中重用属性ng-class
。
在小提琴中,这将永远不会起作用,因为disabled
属性中的ng-class
始终为false(不是禁用复选框的属性(或禁用指令范围内的属性),而是来自当前范围的'禁用'。
答案 0 :(得分:0)
@surendar在directive中提到表达式评估可以通过ngAttr attribute bindings
表示
scope: {
ngModel: "=",
disabled: "@"
}
ng-class
将使用模型值isChecked
修改强>
看来你想做的事情是不可能的!
disabled="<some angular expression>"
因为disabled
是指令的attribute
,同时指令的内部元素为model
。
ng-class="{'fresh': isChecked && !disabled}"
此处ng-class
期望isChecked
和disabled
是模型属性。您可以执行其他操作,例如
ng-class="{'fresh': isChecked && (expression)}" // you can put expression instead of disabled
否则你需要链接/控制器。