AngularJS 具有独立作用域的指令 - 默认属性值
AngularJS directive with isolated scope - default attributes values
我有一个独立作用域的指令。在范围内有一个 属性 - 作为字符串传递 ('@').
此属性是可选的 - 如果在指令属性中未传递任何值,我想将一些默认值设置为 属性。所以我写了下面一行代码:
scope.someProperty = scope.someProperty || "New Value";
但这并没有像我预期的那样工作...scope.someProperty
仍然是空的。
我稍微探索了一下,了解到绑定到隔离范围的一种方式 属性 (@) 意味着可以读取但不能写入父值。我想做的是设置本地指令 属性 值而不是更改父指令。
我该怎么做?
请参阅此 plunker 中的示例。
看看这个plnkr
scope.someProperty = scope.someProperty || "New Value";
此赋值会将 someProperty
值设置为 New Value
。但是由于 scope: {someProperty: '@'}
语句,在初始摘要循环之后,angular 将 someProperty
值更新为相应的空属性值。
试试这个来提供默认值。
attrs.$observe('someProperty', function (nv, ov) {
if (!nv) {
scope.someProperty = "New Value";
}
})
我有一个独立作用域的指令。在范围内有一个 属性 - 作为字符串传递 ('@').
此属性是可选的 - 如果在指令属性中未传递任何值,我想将一些默认值设置为 属性。所以我写了下面一行代码:
scope.someProperty = scope.someProperty || "New Value";
但这并没有像我预期的那样工作...scope.someProperty
仍然是空的。
我稍微探索了一下,了解到绑定到隔离范围的一种方式 属性 (@) 意味着可以读取但不能写入父值。我想做的是设置本地指令 属性 值而不是更改父指令。
我该怎么做?
请参阅此 plunker 中的示例。
看看这个plnkr
scope.someProperty = scope.someProperty || "New Value";
此赋值会将 someProperty
值设置为 New Value
。但是由于 scope: {someProperty: '@'}
语句,在初始摘要循环之后,angular 将 someProperty
值更新为相应的空属性值。
试试这个来提供默认值。
attrs.$observe('someProperty', function (nv, ov) {
if (!nv) {
scope.someProperty = "New Value";
}
})