我正在尝试将 jQuery MixItUp 集成到 angular.js 项目中。为此,我使用以下自定义指令。
app.directive('mixitup', function($compile) {
return {
restrict: 'A',
scope: {
entities: '='
},
link: function(scope, element, attrs) {
scope.$watchCollection('entities', function() {
angular.element(element).mixItUp({
animation: {
duration: 200
},
load: {
sort: 'date:desc'
},
debug: {
enable: true,
mode: 'verbose'
}
});
}, true);
}
};
});
该指令在 HTML 中使用如下。
<div mixitup="mixitup" id="mixitup-container" entities="medias">
<div ng-repeat="media in medias"
data-date="{{ media.date }}"
class="{{ itemClass }} {{ media.category }}">
<div class="image">
<img ng-src="{{ media.cover_image }}" class="img-responsive"></div>
</div>
</div>
medias
通过从自定义服务获取 JSON 数据以将 Angular 应用程序连接到 Laravel 5.1 应用程序,将集合填充到控制器中。成功回调调用以下函数。在指令中记录集合时,它看起来不错。
$scope.addMedias = function addMedias(data) {
for (var i=0; i<data.length; i++) {
$scope.medias.push(data[i]);
}
$scope.loading = false;
};
内容正常加载,但 MixItUp-Tiles 用display: none
. 将过滤器添加到视图时,图块会在过滤时显示,但不会在启动时显示。
我还尝试在 CSS 中从 Twitter Bootstrap 3 中删除浮点数,因为 MixItUp 使用的是display: inline-block
.
#mixitup-container .mix {
display: none;
float: none;
}
MixItUp 调试脚本也没有显示任何错误。但是#mixitup-container
会上课fail
。