0

我在指令中使用了一个模板,如下所示:

<tr>
    <th ng-repeat="col in tableSpec" st-sort="{{col.sortField}}"></th>
</tr>

当 col.sortField 不存在时,不应渲染属性 st-sort(根本没有属性)。

我已经阅读了 $interpolate 女巫中的 'allOrNothing' 选项可以满足我的要求,但如果在使用 {{ }} 表示法时可以指定此选项,我不会这样做。

我还阅读了有关 ngAttr 的信息,并尝试使用此表示法 ng-attr-st_sort="{{col.sortField}}" 但不再成功。

任何治疗将不胜感激。

让-马克

4

1 回答 1

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

            })
        }
    };
}])
于 2015-01-06T07:41:02.533 回答