Ember-cli with Bootstrap carousel Uncaught TypeError:无法读取属性' slice'未定义的

时间:2014-09-14 05:05:55

标签: twitter-bootstrap ember.js ember-cli

当我尝试使用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/

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美丽吗?