Ember.js错误“使用Liquid Fire时无法读取未定义的属性'容器'

时间:2015-03-21 12:53:46

标签: javascript ember.js ember-cli ember-cli-addons

我是前端开发的初学者,并试图将Ember.js用于我的项目。我在2015年的EmberConf偶然发现了a great talk by Edward Faulkner about Liquid Fire。它看起来非常容易申请,所以我决定尝试一下。

我的应用程序通过ember-cli 0.2.0使用Ember和Ember-Data Canary。

应用程序的结构有点像这样:

application.hbs
  \users
     \user
        work.hbs
        profile.hbs
        ...
     user.hbs

负责此操作的 router.js 文件部分是:

this.resource('users', function (){
    this.resource('users.user', { path: '/:user_id' }, function () {
        this.route('work');
        this.route('profile');
        ...
    });
});

在我使用npm install --save-dev liquid-fire安装插件后,我使用{{liquid-outlet}}替换了 user.hbs 文件中的{{outlet}}并添加了转换.js 文件包含一些简单的转换数据:

export default function () {
  this.transition(
    this.toRoute('users.user'),
    this.use('fade')
  );
}

但是当我导航到用户页面时,我收到一个javascript错误:

Uncaught TypeError: Cannot read property 'container' of undefined

源于 liquid-outlet.js 文件,第15行:

var View = this.container.lookupFactory("view:liquid-outlet");

我不知道我做错了什么。似乎我的{{liquid-outlet}}被放置在错误的地方或其他地方,但我已经尝试将其移到其他地方,没有运气。只要我导航到其中包含{{liquid-outlet}}的模板,我就会收到同样的错误。请帮忙。

谢谢你, 奥列格

1 个答案:

答案 0 :(得分:2)

此问题已在Liquid fire的主分支中修复。你可以通过以下方式从git中获取一个有效的构建:

npm install ef4/liquid-fire --save-dev

下一个版本当然也包括修复。

检查此github问题主题是否有更新:https://github.com/ef4/liquid-fire/issues/190