javascript - 用 ng Repeat 填充 tx3 标签云

标签 javascript jquery angularjs angularjs-ng-repeat tag-cloud

我正在使用 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 从 Angular 范围列表中填充这些元素。

<li data-weight="{{element.weight}}" ng-repeat="element in list">{{element.title}}</li>

在 DevTools/Firebug 中,我可以看到创建了所有 li 元素,但忽略了数据权重。如果没有 ngRepeat,我可以看到带有大小值的样式属性将被添加到 li 元素中。对于 ngRepeat,情况并非如此。

我认为问题是在创建标签云时没有加载/初始化 Angular 范围。有没有办法强制在页面加载之前完全加载作用域?

提前致谢。

最佳答案

我通过向 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"
                        });
                    });
                }
            }
        }
    }

关于javascript - 用 ng Repeat 填充 tx3 标签云,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27959156/

相关文章:

javascript - 为什么我的动态 javascript 高亮表单会损坏?

jquery - 复杂表排序

mysql - 在 codeigniter 中将 Controller 中的值作为 JSON 传递以查看 Angular Js 上包含的内容

angularjs - 防止 gulp 压缩本地机器上的代码

javascript - 如何避免在更改路由参数值时重新加载 Controller ?

javascript - 单击输入提交按钮时如何添加 fancybox?

javascript - 多 Controller 页面中的数据绑定(bind)无效

javascript - 如果下拉值 = X 使用 jQuery 显示输入区域

javascript - jquery 和 html 中的表分页

c# - 保存 Site.master 回发事件中的 <LI> 类值