我想使用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元素。我觉得我的做法是错的。有什么建议吗?
答案 0 :(得分:0)
.directive('columnize', function($timeout) {
return {
restrict: 'A',
link: function(scope, iElement, iAttrs) {
$timeout( function(){ iElement.columnize({columns: 2}), 0});
}
虽然这似乎有效,但我认为这不是正确的做法。我记得读过another post,其中$ timeout用于在初始渲染后运行一个函数,这似乎在这里工作。
希望你能得到更好的答案。