Emberjs最新版本与路由器错误:没有方法'finishPartial'

时间:2012-07-14 17:19:46

标签: ember.js

我刚从this jsfiddle更新为EmberJS版本。

controllers / views:

App = Em.Application.create();

// Instantiated and wired up for you in App.initialize()
App.ApplicationController = Em.Controller.extend();
App.ApplicationView = Em.View.extend({
  templateName: 'application'
});
App.NavbarController = Em.Controller.extend();
App.NavbarView = Em.View.extend({
  templateName: 'navbar'
});
// Your stuff
App.HomeController = Em.Controller.extend({});
App.HomeView = Em.View.extend({
  templateName: 'home'
});

App.ProfileController = Em.Controller.extend({});
App.ProfileView = Em.View.extend({
  templateName: 'profile'
});

// Nested views in the profile
App.PostsController = Em.Controller.extend({});
App.PostsView = Em.View.extend({
  templateName: 'posts'
});

App.PhotosController = Em.Controller.extend({});
App.PhotosView = Em.View.extend({
  templateName: 'photos'
});

我一直在使用新的路由器,但是得到了一些奇怪的行为并且希望更新可能会解决它,不幸的是我现在得到以下警告和错误:

WARNING: Computed properties will soon be cacheable by default. To enable this in your app, set ENV.CP_DEFAULT_CACHEABLE = true. vendor.js:54720
Uncaught TypeError: Object function () { return initMixin(this, arguments); } has no method 'finishPartial' vendor.js:42905

任何人都有任何线索可能会发生什么?

2 个答案:

答案 0 :(得分:2)

以你的jsfiddle为起点,我唯一的错误就是使用Em.State而不是Em.Route来定义路由器。

使用最新版本的ember,您必须使用Em.Route。

答案 1 :(得分:0)

错误表示当您应该对函数的结果进行操作时,您的代码正在尝试调用函数上的方法..例如myFunction.finishPartial();而不是myFunction().finishParital();

Em.Mixin的快速谷歌让我建议这个疯狂的猜测:

Em.Mixin.create().finishPartial(this)