我有一个timeline.json喜欢:
[{
"from":"twitter",
//...
},
{
"from": "facebook"
//...
}]
基于from
属性我需要“渲染”特定指令:post-twitter或post-facebook 在循环内
我怎么能这样做?
答案 0 :(得分:1)
您可以根据传递的参数创建一个编译所需指令的指令。
类似的东西:
.directive('renderOther', function($compile) {
return {
restrict: 'E',
scope: {
type: '='
},
link: functtion(scope, elem, attrs) {
var dir = $('<post-' + scope.type + '></post-'+scope.type+'>');
dir.appendTo(elem);
$compile(elem.contents())(scope);
}
}
});
HTML:
<div ng-repeat="i in items">
<render-other type="i.from"></render-other>
</div>
(它不是工作代码 - 只是一个想法)
答案 1 :(得分:1)
有几种方法。您可以在链接阶段使用ng-switch,ng-if或自定义处理函数。您可以在文档中找到更多信息。
基本上,在基于条件语句调用指令的标记之间切换,即模型中的“from”值。例如,您可以将ng-if指令与ng-include结合使用,以根据此条件呈现模板的一部分。只要确保它不会降低性能。