我有一个模型表,我希望能够在其中一个模型中单击我的{{action 'edit'}}
,而ember将知道#{1}}所在的模型。
现在我收到此错误:'GET localhost:3000 / category / undefined 404(Not Found)'
以下是'/ categories'路线中的代码。
{{action 'edit'}}
然后在控制器上:
<tbody>
{{#each}}
<tr class="people-list">
<td>
<input type="checkbox" class="toggle">
{{#if isEdit}}
{{view Ember.TextField valueBinding="Name" name="Name"}}
{{else}}
<label class="category-text">{{#linkTo 'category' this}}{{Name}}{{/linkTo}}</label>
{{/if}}
<img class="table-img" src="images/x.png">
<img class="table-img" {{action 'edit'}} src="images/pencil-grey.png">
</td>
</tr>
{{/each}}
</tbody>
当我点击
时发生404actions: {
edit:function(){
this.set('isEdit', true);
}
}
和模型
<img class="table-img" {{action 'edit'}} src="images/pencil-grey.png">
和router.js
VpcYeoman.Category = DS.Model.extend({
RecordCategoryID:DS.attr('number'),
Name: DS.attr('string'),
ProjectName: DS.attr('string'),
WorkDescription: DS.attr('string'),
workflow: DS.belongsTo('category', {
polymorphic: true
}),
classNameBindings: ['isAdministrator']
});
VpcYeoman.Calendar.FIXTURES = [
{
id: 0,
RecordCategoryID: 0,
Name: "Fire",
ProjectName: "Electra"
},
{
id: 1,
RecordCategoryID: 1,
Name: "Water",
ProjectName: "Nike"
}
];
我不确定我是否应该在路由器上添加任何关于“编辑”的内容,因为我不希望程序必须更改URL以便专注于特定模型。
答案 0 :(得分:1)
有一个非常简单的解决方案,只需将模型发送到操作中。
<img class="table-img" {{action 'edit' this}} src="images/pencil-grey.png">
actions: {
edit: function(model){
model.set('isEdit', true);
}
}
未定义来自Ember尝试在单击链接时生成URL。它接着模型然后在模型上寻找category_id
来构建唯一的url。唉,你在模型上没有那个属性,所以你需要修改你的路线告诉Ember如何序列化你的模型。
App.CategoryRoute = Em.Route.extend({
serialize: function(model){
return {category_id: model.get('id')};
}
});