繁体   English   中英

使用Ember CLI的Ember引导程序; 无法使Popovers组件正常工作

[英]Bootstrap for Ember using Ember CLI; can't get popovers component to work

我被困在这里...

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
        });
    } });

好的,所以在template / 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}}车把,而且我还测试了其中的其他几件东西,它们似乎也可以正常工作,所以我很确定自己已将资产正确添加到项目中,等等

我自己解决了。

我的问题是关于如何通过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注释,否则它会在构建时抱怨未定义(因此,我想为什么我认为需要导入它)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM