我正在使用tx3标签云来可视化一些数据。
实际上,它很容易使用。
<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中,我可以看到创建了所有元素,但是忽略了数据权重。没有ngRepeat,我可以看到具有大小值的style属性将添加到li元素中。使用ngRepeat并非如此。
我认为问题在于创建标签云时未加载/初始化角度范围。有没有一种方法可以强制在页面加载之前将范围完全加载?
提前致谢。
最佳答案
我通过向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"
});
});
}
}
}
}