当我尝试使用bootstrap库的carousel javascript组件时。我得到Uncaught TypeError:无法读取未定义的属性'slice'
以下是我的application.hbs
中包含轮播的代码部分<article class="carousel-moto slide" data-ride="carousel" id="carousel-example-generic">
<hgroup class="carousel-inner">
<h3 class="item">Blah</h3>
<h3 class="item">blah</h3>
<h3 class="item">blahhhhh</h3>
<h3 class="item">bleh</h3>
</hgroup>
</article>
路由/ application.js中
import Ember from "ember";
export default Ember.Route.extend({
activate: function() {
Ember.$('.carousel-moto').carousel();
}
});
如何摆脱这个错误?
更新 这是JS Bin http://jsbin.com/kiduma/1/
答案 0 :(得分:1)
错误是来自Ember还是来自插件?我实际上无法告诉你如何解决它,但是Ember JS在诸如Arrays等对象上创建了很多新的和现有的行为(取自@ .each,forEach等)。你可以尝试一下这个; http://emberjs.com/guides/configuring-ember/disabling-prototype-extensions/,但它也会禁用使emberJS如此棒的所有酷炫功能。您也可以尝试创建一个视图(例如App.CarouselView),并在didInsertElement钩子中附加插件的利用率。然后你会确定元素实际上在那里,因为它也可能是从Ember渲染树中衍生出来的错误。
因此,尝试将轮播包装在视图中,并在DOM准备就绪时执行操作,如果没有解决它,请查看Ember的原型行为。
App.CarouselView = Ember.View.extend({
classNames: ['.carousel-moto'],
didInsertElement: function() {
this.$.carousel();
}
});
关于这个的好处是,你可以在这里为旋转木马添加更容易的特定东西,甚至更好,重复使用它! :D不是Ember美丽吗?