使用Ember CLI为Ember引导;不能让popovers组件工作

时间:2014-10-03 15:39:35

标签: javascript ember.js ember-cli bootstrap-for-ember

我被困在这里......

http://ember-addons.github.io/bootstrap-for-ember/#/show_components/popover显示了关于它应该如何工作的文档...下面引用的可能是我不理解的一点(这有点令人困惑,因为这一切都提到了工具提示而不是弹出窗口,但我正在制作一个飞跃,因为它都在相同的文档中,所有相关的......)

  

对于Popover支持,需要调整应用程序路径和   将命名插座添加到主模板并引用控制器   从Bootstrap.TooltipBoxController扩展

     

//在您的应用中创建一些引用的控制器    Bootstrap.TooltipBoxController App.TooltipBoxController = Bootstrap.TooltipBoxController

//Application route App.ApplicationRoute = Ember.Route.extend({
    renderTemplate: function() {
        // Render default outlet
        this.render();
        // render extra outlets
        var controller = this.controllerFor('tooltip-box');
        this.render("bs-tooltip-box", {
            outlet: "bs-tooltip-box",
            controller: controller,
            into: "application" // important when using at root level
        });
    } });

好的,所以在templates / application.hbs中我添加了这一点:

{{outlet bs-tooltip-box}}

然后,在routes / application.js,我添加了它所说的内容:

renderTemplate: function() {
    // Render default outlet
    this.render();
    // render extra outlets
    var controller = this.controllerFor('tooltip-box');
    this.render("bs-tooltip-box", {
        outlet: "bs-tooltip-box",
        controller: controller,
        into: "application" // important when using at root level
    });
  },

可以预见,在重建时,我收到一个名为'tooltip-box'的控制器不存在的错误。所以我创建了一个:     ember g controller tooltip-box 好的,很好,现在它不会在那个部分呕吐。

现在这里的事情对我来说是侧面的......我正试着这样做:

//Create some controller in your app that references _Bootstrap.TooltipBoxController_
App.TooltipBoxController = Bootstrap.TooltipBoxController

所以我的假设是代替生成的蓝图:

import Ember from 'ember';

export default Ember.Controller.extend({
});

猜测需要它来说这样的事情?:< - 这就是我被困住的地方

import Bootstrap from 'somewhere I cant seem to figure out';

export default Bootstrap.TooltipBoxController.extend({
});

其他信息: 我已将此添加到模板中,否则其工作正常:

<h2 {{bs-bind-popover testme}}>Click for a popover</h2>

在适当的控制器中,我添加了:

testme: Ember.Object.create({
    title: "Hello world!",
    content: "yup",
    placement: "left"
  }),

它没有抱怨{{bs-bind-popover}}把手,我已经测试了其他一些东西,它们似乎工作正常,所以我相信我已经将资产添加到了项目正确等等。

1 个答案:

答案 0 :(得分:0)

自己解决了。

我的问题是误解了通过ember-cli插入的东西......坦率地说,我仍然没有100%清楚,因为有些东西在使用时似乎需要导入,有些东西会在Ember下创建命名空间这个(Ember的bootstrap)只是将Bootstrap作为全局命名空间。所以,答案就是我把一切都做对了,除了......

import Bootstrap from 'somewhere I cant seem to figure out';

export default Bootstrap.TooltipBoxController.extend({
});

应该只是......

export default Bootstrap.TooltipBoxController.extend({
});

...不需要导入,但是你需要一些jshint注释,否则它会在构建时抱怨它没有定义(因此我认为为什么我需要导入它)。