我正在完成创建指令的过程。经历了一些起伏,我完成了创建指令(小部件)并完成指令将采用的各种属性。
我使用了各种可用选项,如属性,绑定,评估,表达等。
我认为如果你想创建一个通用组件,你永远不会告诉人们如何将值传递给组件。
这是一个例子......
您正在创建一个新的元素组件..说
<hello name="__ARGUMENT__"></hello>
hello的name属性是其中唯一的变量。如果你向公众公开......这些是人们可能使用这个组件的可能场景。
案例1:
<hello name="angular"></hello>
案例2:
<hello name="{{name}}"></hello>
案例3:
<div ng-repeat="name in names">
<hello name="name"></hello>
</div>
现在..针对不同的场景..我已经了解了提供的各种选项。我想不出一个你想要'属性'的场景,因为它简单地直接将值从组件替换到模板。
如果您已将名称定义为“评估”而非“属性”
,则在您的指令定义中if attribute:
<hello name="angular"></hello>
如果评估:
<hello name="'angular'"></hello>
请注意额外的单引号..
据我所知,评估涵盖了什么属性。并且,使用evaluate似乎是一个更好的选择,而不仅仅是属性,因为它涵盖了更多的场景!
如果有人能够解释为什么属性存在于首位?更多选择=更多混乱.. :)
答案 0 :(得分:7)
我们很清楚这种混乱,将来会清理它。