Angularjs 重新评估ng属性

Angularjs 重新评估ng属性,angularjs,angularjs-directive,Angularjs,Angularjs Directive,在angular应用程序中,我有一个angular ui中的选项卡集,我使用ng attr如下: ng-attr-justified="{{ crawledVideos.length > 10 ? 'true' : 'false'}}" crawledVideos列表在开始时为空,因此它在开始时计算为false,但之后该列表有值,但属性没有重新计算,因此仍然为false 是否有任何方法可以重新计算表达式或以任何其他方式执行此操作?您可以在控制器中设置一些标志,一旦初始化crawldvid

在angular应用程序中,我有一个angular ui中的选项卡集,我使用ng attr如下:

ng-attr-justified="{{ crawledVideos.length > 10 ? 'true' : 'false'}}"
crawledVideos列表在开始时为空,因此它在开始时计算为false,但之后该列表有值,但属性没有重新计算,因此仍然为false


是否有任何方法可以重新计算表达式或以任何其他方式执行此操作?

您可以在控制器中设置一些标志,一旦初始化
crawldvideos
列表,您可以将这些标志设置为true。然后,您只能在列表第一次初始化后渲染选项卡集:

.controller('YourCtrl', function ($scope) {
    $scope.crawledVideosInitialized = false;
    // ... initialize $scope.crawledVideos ....
    $scope.crawledVideosInitialized = true;
});
然后,在您的视图中,将
ngIf
添加到选项卡集中:

<uib-tabset ng-if="crawledVideosInitialized" ng-attr-justified="{{ crawledVideos.length > 10 ? 'true' : 'false'}}">
    ......
</uib-tabset>

......

实际上,您可以将“justified”属性的值与作用域上的模型绑定,因为您可以看到,它是在父作用域上进行计算的。在您的情况下,这将是您使用选项卡的$scope。

谢谢,我没有想到这种方法。