我是前端开发的初学者,并试图将Ember.js用于我的项目.我在EmberConf 2015上偶然发现了
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}},并添加了一个带有一些简单转换数据的transitions.js文件:
export default function () {
this.transition(
this.toRoute('users.user'),
this.use('fade')
);
}
但是当我导航到用户页面时,我收到一个javascript错误:
Uncaught TypeError: Cannot read property 'container' of undefined
它起源于第15行的liquid-outlet.js文件:
var View = this.container.lookupFactory("view:liquid-outlet");
我不知道我做错了什么.似乎我的{{liquid-outlet}}被放置在错误的地方或其他地方,但我已经尝试将其移到其他地方,没有运气.只要我导航到其中包含{{liquid-outlet}}的模板,我就会收到同样的错误.请帮忙.
谢谢,
奥列格
最佳答案 此问题已在液体火灾的主分支中修复.你现在可以从git中获取一个有效的构建:
npm install ef4/liquid-fire --save-dev
下一个版本当然也包括修复程序.
检查此github问题线程以获取更新:https://github.com/ef4/liquid-fire/issues/190