我收到此错误
Uncaught TypeError: Object [object Object] has no method 'save'
当我尝试使用我在控制器中定义的“保存”操作时。
这是我的HTML代码
<tbody>
{{#each}}
<tr class="people-list">
<td>
<div class="category-text">
{{input type="text" class="quick-add-element" action="save" valueBinding=Name}}
{{#linkTo 'category' this}}
{{Name}}
{{/linkTo}}
</div>
</td>
</tr>
{{/each}}
</tbody>
这是我的类别控制器
actions: {
save: function(){
var category = this.get('model');
// this will tell Ember-Data to save/persist the new record
category.save();
// then transition to the current user
this.transitionToRoute('category', category);
}
}
和我的类别控制器
actions: {
save: function(){
var category = this.get('model');
// this will tell Ember-Data to save/persist the new record
category.save();
// then transition to the current user
this.transitionToRoute('category', category);
}
}
我的类别路线
VpcYeoman.CategoryRoute = Ember.Route.extend({
serialize: function(model){
return {category_id: model.get('id')};
},
});
答案 0 :(得分:1)
没有足够的信息来正确回答这个问题,但让我们看看。我假设你有一个明确定义的类别模型。现在,您的路由器应该具有这两个路由,并实现相应的模型挂钩。没有这些,控制器将没有合适的型号。
此外,类别控制器中的保存功能将不起作用。类别控制器的模型是一个模型数组,这就是为什么你不能调用它的保存。要么保存必须在categoryController中进行(它有一个模型并且调用将它保存在工作中),或者categoriesController需要具有它需要保存的模型的id(你必须在数组模型中搜索id,然后在记录上调用save)
这是你的路线应该是这样的:
VpcYeoman.Router.map(function() {
this.resource('categories', function() {
this.route('category');
});
});
VpcYeoman.CategoriesRoute = Ember.Route.extend({
model: function(){
return this.store.find("category")
},
});
VpcYeoman.CategoryRoute = Ember.Route.extend({
model: function(category){
return this.store.find("category", category.category_id)
},
});
看看他们是如何做到的:
https://github.com/tastejs/todomvc/tree/gh-pages/architecture-examples/emberjs/js