如何使用angularJs进行jquery columnize

时间:2012-11-14 03:10:35

标签: jquery angularjs multiple-columns

我想使用jquery的columnize插件在我的AngularJS应用中设置列。我超级天真的做法是:

.directive('columnize', function() {
    return {
        restrict: 'A',
        link: function(scope, iElement, iAttrs) {
            $(iElement).columnize({columns: 2});
        }
    };
}); 

使用此HTML代码:

<ol class="questions" columnize>
    <li ng-repeat="question in questions" class="question">
        <span>{{question.text}}</span>
        <ul class="choices" sortable="question.choices">
            <li ng-repeat="choice in question.choices">
                {{choice}}
            </li>
        </ul>
    </li>
</ol>  

但问题是在元素内部使用ng-repeat。 columnize destroy是dom,然后ng-repeat抛出一个异常,它不能insertBefore null元素。我觉得我的做法是错的。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

.directive('columnize', function($timeout) {
   return {
     restrict: 'A',
     link: function(scope, iElement, iAttrs) {
              $timeout( function(){ iElement.columnize({columns: 2}), 0});
           }

虽然这似乎有效,但我认为这不是正确的做法。我记得读过another post,其中$ timeout用于在初始渲染后运行一个函数,这似乎在这里工作。

希望你能得到更好的答案。

Fiddle