Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 指令'中需要值属性;范围';_Javascript_Angularjs - Fatal编程技术网

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

Javascript 指令'中需要值属性;范围';,javascript,angularjs,Javascript,Angularjs,我正在经历创建指令的过程。经历了一些起伏之后,我完成了指令(widget)的创建,并最终确定了指令将采用的各种属性 我使用了各种可用选项,如属性、绑定、求值、表达式等 我的想法是,如果你想创建一个通用组件,你永远无法知道人们将如何向组件传递值 这是一个例子 您正在创建新元素组件。。说 <hello name="__ARGUMENT__"></hello> hello的name属性是其中唯一的变量。如果你把它公布给公众。。。这些是人们可能使用此组件的可能场景 案例1:

我正在经历创建指令的过程。经历了一些起伏之后,我完成了指令(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>

现在。。对于不同的场景。。我逐渐了解了所提供的各种选择。我想不出哪一种情况下你会想要“属性”,因为它是从组件到模板的值的简单直接替换

在指令定义中,如果已将名称定义为“evaluate”而不是“attribute”

如果属性:

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

如果评估:

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

请注意额外的单引号

就我所知,evaluate覆盖了属性的作用。。而且,使用evaluate似乎比使用attribute更好,因为它涵盖了更多的场景


如果有人能解释为什么属性首先存在?更多选择=更多困惑:)

我们很清楚这一困惑,并将在未来进行清理。

Ganaraj,你提出这一点真是太好了。当我本周末阅读指令文件时,我得出了类似的结论。另一件事是控制器的“require”属性,带有神奇的文字前缀(?,^)。事实是?使require依赖项成为可选的有点奇怪。也许有不同的选择,这当然会让事情变得更复杂。。。