我试图创建一个具有一些可配置属性的指令。为此,我将其添加到指令声明:
...
scope: {
maxColumns: '=',
minColumns: '=',
},
...
这样我就可以像这样使用指令:
<my-directive max-columns="maxColOnScope" min-columns="minColOnScope"></my-directive>
但我也希望能够做到这一点:
<my-directive max-columns="4" min-columns="2"></my-directive>
这最后一种情况有效,但是给出了Angular错误:$ compile:nonassign表示值4不可绑定,因此不能用于双向绑定。
这一切都很棒,但我讨厌现在我必须要么:
这些选项似乎都不是特别吸引我。我错过了什么或者没有办法做我想做的事情吗?
提前致谢。
答案 0 :(得分:0)
您可以简单地使用(单个)引号来表示静态值。
<my-directive max-columns="'4'" min-columns="'2'"></my-directive>
答案 1 :(得分:0)
看起来我被这种那种愚蠢的火车击中了。
除了范围声明:
scope: {
maxColumns: '=',
minColumns: '=',
},
我还将bindToController
值设置为true,这会导致将值作为属性添加到控制器。
这本身就是我想要的,但我偶然在比较中使用单个等号来设置控制器中的值...
只是因为值的变化,AngularJs才会给我一个消息,即该值是只读的。修复错误删除了错误消息。
我将在这里留下这个答案,以便将来的假人;)