我正在做一个不使用 html 模板片段包装现有 ngDirective 的练习。在示例中,我只是重新利用ng-show
. 我意识到这存在问题(例如硬编码item.viewing
),您可能会问为什么,但除非有更好的习语,否则暂时将其搁置一旁。我看不到它不起作用-我添加了属性,然后将其编译到范围中。有范围问题吗?我看不出需要优先级或嵌入。
有效的代码如下所示:
<ul ng-repeat='item in collection'>
<li ng-show='item.viewing'>text</li>
</ul>
我想li
用
<li viewing>text</li>
这是 angularjs 指令代码:
app.directive('viewing', function($compile){
return {
restrict: 'A',
compile: function(tElem, tAttrs){
tAttrs.$set('ngShow', 'item.viewing');
return function(scope, elem, attr){
$compile(scope, elem, attr);
};
}
};
});
这是一个工作版本: http: //plnkr.co/PjusCDkgt7PuXKtZowbH
提前为愚蠢道歉。干杯。