我使用tx3 Tag Cloud来显示某些数据。 实际上它使用起来很简单。
<ul id="tagcloud">
<li data-weight="50"><a href="#">HTML5</a></li>
<li data-weight="24"><a href="#">CSS3</a></li>
<li data-weight="28"><a href="#">Javascript</a></li>
<li data-weight="32"><a href="#">jQuery</a></li>
...
</ul>
我想用ngRepeat从角度范围列表中填充这些元素。
<li data-weight="{{element.weight}}" ng-repeat="element in list">{{element.title}}</li>
在DevTools / Firebug中,我可以看到所有li元素都已创建但数据权重被忽略。如果没有ngRepeat,我可以看到带有大小值的style属性将被添加到li元素中。使用ngRepeat时情况并非如此。
我认为问题在于在创建标签云时未加载/初始化角度范围。有没有办法强制在页面加载之前完全加载作用域?
提前致谢。
答案 0 :(得分:2)
我通过向ng-repeat添加指令解决了我的问题。在这个指令中,我调用超时函数并在此之后初始化标签云。
function ngRepeatDoneNotification($timeout) {
return {
link: function(scope, element, attrs) {
if (scope.$last){ // ISSUE IS HERE
$timeout(function() {
$("#tagcloud").tx3TagCloud({
multiplier: 5 // default multiplier is "1"
});
});
}
}
}
}