指令'范围'中需要值属性

gan*_*raj 15 javascript angularjs

我正在经历创建指令的过程.经历了一些起伏后,我完成了创建指令(widget)并完成指令将采用的各种属性.

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

我想的是,如果你想创建一个通用组件,你永远不会告诉人们如何将值传递给组件.

这是一个例子......

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

<hello name="__ARGUMENT__"></hello>
Run Code Online (Sandbox Code Playgroud)

hello的name属性是其中唯一的变量.如果你向公众公开......这些是人们可能使用这个组件的可能场景.

情况1 :

<hello name="angular"></hello>
Run Code Online (Sandbox Code Playgroud)

案例2:

<hello name="{{name}}"></hello> 
Run Code Online (Sandbox Code Playgroud)

案例3:

<div ng-repeat="name in names">
    <hello name="name"></hello> 
</div>
Run Code Online (Sandbox Code Playgroud)

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

在您的指令定义中,如果您将名称定义为'evaluate'而不是'attribute'

如果属性:

<hello name="angular"></hello>
Run Code Online (Sandbox Code Playgroud)

如果评估:

<hello name="'angular'"></hello>
Run Code Online (Sandbox Code Playgroud)

请注意额外的单引号..

所以据我所知,评估涵盖了什么属性.并且,使用evaluate似乎是一个更好的选择,而不仅仅是属性,因为它涵盖了更多的场景!

如果有人能够解释为什么属性存在于第一位?更多选择=更多混乱.. :)

Mis*_*ery 7

我们很清楚这种混乱,将来会清理它.

  • 到目前为止有任何变化 (5认同)