Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ember.js:如何以正确的方式钩住模型?_Javascript_Ember.js - Fatal编程技术网

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)。我不知道我在做什么。任何人谢谢