我在指令中使用了一个模板,如下所示:
<tr>
<th ng-repeat="col in tableSpec" st-sort="{{col.sortField}}"></th>
</tr>
当col.sortField不存在时,不应该渲染属性st-sort(根本没有属性)。
我已经读过关于“无所有”的消息。 $ interpolate中的选项可以执行我想要的操作,但是如果可以在使用{{}}符号时指定此选项,则不会这样做。
我也读过有关ngAttr的内容,我尝试使用这种表示法ng-attr-st_sort =&#34; {{col.sortField}}&#34;但是没有成功了。
任何healp都会非常感激。
让马克
答案 0 :(得分:0)
据我了解,您的指令 stSort 有一个模板。您可以将 ngHide 指令添加到模板根元素,如果col.sortField存在,则可以添加$ observer条件吗?
.directive('stSort', [function () {
return {
restrict: 'EA',
template: '<div ng-hide="$notRender"></div>',
link: function(scope, element, attrs) {
attrs.$observe('stSort', function(newVal, OldVal){
if(!newVal)
scope.$notRender = true
else
scope.$notRender = false;
//do your staff
})
}
};
}])