我是前端开发的初学者,并尝试将 Ember.js 用于我的项目。我偶然发现了 Edward Faulkner在 EmberConf 2015 上关于 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
,我将user.hbs文件中的 {{outlet}} 替换为 {{liquid-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}} 的模板,我就会得到同样的错误。请帮忙。
谢谢你,奥列格