我尝试使用#link-to
迭代所有角色。问题是第一个记录在转换时工作正常,但是当我尝试转换到其他记录时,复选框不起作用,并且默认检查是从第一个记录继承的。
模板:templates/roles.hbs
<ul>
{{#each role in controller}}
{{#if role.name}}
<li>
{{#link-to 'roles.show' role}}
{{role.name}}
{{/link-to}}
</li>
{{/if}}
{{/each}}
</ul>
模板:templates/roles/show.hbs
{{role-form role=model}}
这是component/role-form.hbs
。
我尝试{{module.accessRights.read}}
来获取值,但它仅适用于第一行复选框,当我转换到其他记录时,它会抛出错误:TypeError: element is null
{{#each module in role.modules}}
{{module.name}}
{{view Ember.Checkbox checkedBinding='module.accessRights.read'}}
{{view Ember.Checkbox checkedBinding='module.accessRights.write'}}
{{view Ember.Checkbox checkedBinding='module.accessRights.update'}}
{{view Ember.Checkbox checkedBinding='module.accessRights.delete'}}
{{/each}}
路线:routes/roles/show.js
export default Ember.Route.extend({
model: function(param) {
return this.store.find('role', param.id);
}
});
型号:
// role.js
export default DS.Model.extend({
name: DS.attr('string'),
modules: DS.hasMany('module', {embedded: 'always'})
});
// module.js
export default DS.Model.extend({
name: DS.attr('string'),
accessRights: DS.belongsTo('access', {embedded: 'always'})
});
// access.js
export default DS.Model.extend({
write: DS.attr('boolean'),
read: DS.attr('boolean'),
update: DS.attr('boolean'),
delete: DS.attr('boolean')
});
来自后端的响应正确处理了我的模型。我是否需要在每个link-to
上挂钩模型?我尝试使用setupController
来挂钩模型,但它不起作用。