15

我正在经历创建指令的过程。在经历了一些起起落落之后,我创建了指令 ( widget ) 并最终确定了指令将采用的各种属性。

我使用了各种可用的选项,如属性、绑定、评估、表达式等。

我的想法是,如果你想创建一个通用组件,你永远无法知道人们将如何将值传递给组件。

这是一个插图...

您正在创建一个新的元素组件..说

<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>

现在..针对不同的场景..我已经了解提供的各种选项。我想不出你会想要“属性”的单一场景,因为它是从组件到模板的简单直接替换值..

在您的指令定义中,如果您将名称定义为“评估”而不是“属性”

如果属性:

<hello name="angular"></hello>

如果评估:

<hello name="'angular'"></hello>

注意额外的单引号..

据我所知,评估涵盖了属性的作用。而且,使用评估似乎是比仅仅属性更好的选择,因为它涵盖了更多场景!

如果有人可以解释为什么属性首先存在?更多选择=更多混乱.. :)

4

1 回答 1

7

我们很清楚这种混乱,并将在未来清理它。

于 2012-05-30T16:49:32.927 回答