Javascript Ember.js:如何以正确的方式钩住模型?
我尝试迭代所有角色,并使用Javascript Ember.js:如何以正确的方式钩住模型?,javascript,ember.js,Javascript,Ember.js,我尝试迭代所有角色,并使用#链接到。问题是第一条记录在转换时可以正常工作,但当我尝试转换到其他记录时,复选框不起作用,默认选中的复选框是从第一条记录继承的 模板:模板/角色。hbs <ul> {{#each role in controller}} {{#if role.name}} <li> {{#link-to 'roles.show' role}}
#链接到。问题是第一条记录在转换时可以正常工作,但当我尝试转换到其他记录时,复选框不起作用,默认选中的复选框是从第一条记录继承的
模板:模板/角色。hbs
<ul>
{{#each role in controller}}
{{#if role.name}}
<li>
{{#link-to 'roles.show' role}}
{{role.name}}
{{/link-to}}
</li>
{{/if}}
{{/each}}
</ul>
{{role-form role=model}}
这是组件/角色表单.hbs
。
我试图{{module.accessRights.read}
获取该值,但它仅对第一行复选框有效,当我转换到其他记录时,它抛出一个错误:TypeError:element为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')
});
来自后端的响应正确地处理了我的模型。我是否需要在每个链接上挂接模型到?我尝试使用setupController
来钩住模型,但它不起作用。{embedded:'always'}实际上不再做任何事情,您是否正在创建一个利用它的自定义序列化程序?这里是我的自定义序列化程序:您介意将json放入,或者它以示例形式在emberjs.jsbin.com中实现吗,我需要使用反序列化的内容来进行更深入的挖掘。此外,您还可以使用输入帮助程序{{input type='checkbox'checked=foo.bar}}
执行该复选框。下面是来自后端的JSON响应:抱歉,我对Ember还是新手。感谢问题来自自定义序列化程序,位于sideloadItem
函数中。当id
已经在sideloadArr
中时,它返回有效负载而不将其推送到sideloadArr
和payload
,因此它们使用相同的记录(id)。我不知道我在做什么。任何人谢谢