2016-04-25 74 views
0

我不会在ng-repeat内获得砌体工作。角度和砌体一起工作

我尝试添加一个石匠容器的类,并在我的ng-repeat内部使用类masonry-item。

在我的js我使用这两个类,我的js文件被加载,如: -jquery -masonry -myfile

  1. HTML)

<div class="masonry-container" > <div ng-repeat="link in links"> <div class="masonry-item col-sm-4"> <div class="jumbotron"> <div> {{link.title}} </div> <div> {{link.url}} </div> </div> </div> </div> </div>

1.1 JS )

$(document).ready(function(){ 

    $('.masonry-container').masonry({ 
    // options 
    itemSelector: '.masonry-item', 
    columnWidth: '.masonry-item' 
    }); 
}); 

回答

1

我不知道砌体,但是当你的JS被执行时,角没有渲染模板。

要做你想做的事情,你应该使用指令,并把你的代码放在link函数中。

angular.module('Example', []) 
.directive('masonry-container', [function() { 
    return { 
     link: function ($scope, element, attributs, controllers) { 
      element.masonry({ 
       // ... 
      }); 
      // ... 
     } 
    }; 
}]) 

指令希望修改DOM通常使用的链接选项 注册DOM监听以及更新的DOM。它在模板被克隆后被执行 ,并且其中指令逻辑将被放入 。

https://docs.angularjs.org/guide/directive

+0

非常感谢......我试过了,然后我发现了一个优秀的解决方案。 https://www.npmjs.com/package/ng-masonry提供角度指令的软件包...感谢您的帮助... – LukasA