【发布时间】:2016-07-29 16:08:46
【问题描述】:
我正在使用 Angular 和 Angular Material 做一个网络应用程序。我必须做一个轮播,我发现了一个不错的 jquery 组件。所以我做了一个指令。它可以工作,但问题是在 1 或 2 秒内,我看到轮播的元素像 <ul> 列表一样垂直显示。然后,在构建指令时,我正确地看到了轮播。
有没有办法插入在指令未构建时显示的加载程序(可能带有角度材料)?
这是代码
angular.module('app').directive("slick", function($timeout) {
return function(scope: any, el: any, attrs: any) {
$timeout((function() {
el.slick({
arrows: true,
autoplay: false,
dots: true,
infinite: false,
speed: 300,
slidesToShow: 4,
slidesToScroll: 4,
responsive: [
{
breakpoint: 1024,
settings: {
slidesToShow: 3,
slidesToScroll: 3,
infinite: true,
dots: true
}
},
{
breakpoint: 600,
settings: {
slidesToShow: 2,
slidesToScroll: 2
}
},
{
breakpoint: 480,
settings: {
slidesToShow: 1,
slidesToScroll: 1
}
}
// You can unslick at a given breakpoint now by adding:
// settings: "unslick"
// instead of a settings object
]
})
}), 100)
}
});
【问题讨论】:
-
这并不能回答问题,但将 jQuery 与 AngularJS(和 Angular 材料)混合并不是一个好习惯 - stackoverflow.com/a/30007955/782358
-
@camden_kid 我不认为这总是正确的。他将整个事情包装在指令中,这是 正确 以角度做事的方式。即使是您发布的 SO 答案,在第 2 点也是如此。
-
@CozyAzure 是的,没错。将它包装在指令中是最好的方法,但我仍然认为将两者混合不是一个好主意。不过,需求是必须的。
标签: javascript jquery angularjs angularjs-directive angular-material