Angularjs 指令模板-将属性用于html文本插值?
角度1* 我正在使用指令使我的代码更简洁。。。或者试图。但由于json数据结构的差异,我不确定这是否可能,因为每个单选按钮都有插值文本Angularjs 指令模板-将属性用于html文本插值?,angularjs,Angularjs,角度1* 我正在使用指令使我的代码更简洁。。。或者试图。但由于json数据结构的差异,我不确定这是否可能,因为每个单选按钮都有插值文本 <ppv-filter filter-name="Region" radio-value="choice.code" sort="description" filter-data="regions"></ppv-filter> <ppv-filter filter-name="Market" display-pro
<ppv-filter filter-name="Region" radio-value="choice.code"
sort="description" filter-data="regions"></ppv-filter>
<ppv-filter filter-name="Market" display-prop="description"
filter-data="markets"></ppv-filter>
<ppv-filter filter-name="Dealer" display-prop="code"
filter-data="dealers"></ppv-filter>
是否可以传递属性绑定来代替,例如,
{{choice.description}}
?如果没有,那么我就不会通过重用一个包含如此多代码ng If
块的指令来让代码变得更干练 我将在指令内创建控制器,并在指令内检查发送到作用域的属性,在这个特定示例中,最好是switch语句。因此,在开关中
设置视图中应使用哪个参数
(指令的链接或控制器中的伪代码)
switch (scope.filterName){
case "Market":
scope.field="code";
break;
//other possibilities
}
接下来,通过使用数组语法,我们只需要一个结构
<div>
<div ng-repeat="choice in filterData| orderBy: 'code'">
<input type="radio" name="bob">
{{choice[field]}}<!-- HERE MOST IMPORTANT -->
</div>
</div>
{{choice[field]}
我看到排序也发生了变化,所以为排序类型创建第二个变量,并将其分配到控制器中相同的开关中
还有一件事,从父作用域分配的指令属性(props)可以在没有任何控制器代码的情况下使用,props在视图中可用,因此它可以在相同的语法中使用,如-{{someArr[filterName]}
其中filterName
是指令属性
回到您的问题-如果我们按属性发送视图中应该使用的属性名称,例如列:'@'
,示例值为code,说明,那么在视图中只需要{choice[column]}
。谢谢。我的目标不是使用开关
或ng(如果
)。。。。。只需使用一个html块来查看指令。如果不是的话,我认为如果没有有这么多条件的指令,代码将更容易阅读。
switch (scope.filterName){
case "Market":
scope.field="code";
break;
//other possibilities
}
<div>
<div ng-repeat="choice in filterData| orderBy: 'code'">
<input type="radio" name="bob">
{{choice[field]}}<!-- HERE MOST IMPORTANT -->
</div>
</div>