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
Ember.js 余烬渲染模型有很多属性_Ember.js_Ember Data_Handlebars.js - Fatal编程技术网

Ember.js 余烬渲染模型有很多属性

Ember.js 余烬渲染模型有很多属性,ember.js,ember-data,handlebars.js,Ember.js,Ember Data,Handlebars.js,您好,谢谢您抽出时间帮我回答问题 我在使用手柄渲染模型属性时遇到困难。代码如下: App.Project = DS.Model.extend({ name: DS.attr('string'), teams: DS.hasMany('team', {async: true}) // teamEffort: DS.attr('array') }); App.Team = DS.Model.extend({ name: DS.attr('string'),

您好,谢谢您抽出时间帮我回答问题

我在使用手柄渲染模型属性时遇到困难。代码如下:

App.Project = DS.Model.extend({
    name: DS.attr('string'),
    teams: DS.hasMany('team', {async: true})
    // teamEffort: DS.attr('array')
});

App.Team = DS.Model.extend({
    name: DS.attr('string'),
    project: DS.belongsTo('project')
});

App.Team.FIXTURES = [
    {
        id: 1,
        name: 'Team 1',
        project: 1
    },
    {
        id: 2,
        name: 'Team 1',
        project: 2
    },
...]

App.Project.FIXTURES = [
    {
        id: 1,
        name: 'Project 1 - Test',
        teams: ['1', '3']      
    },
    {
        id: 2,
        name: 'Project 2 - Test',
        teams: ['2', '4', '5']
    }
...
];
并具有以下html:

...
<script type="text/x-handlebars" data-template-name="projects">
        <!-- TODO: add css classes -->
        Test
        {{#each project in model}}
            {{#each team in project.teams}}
                aaaaaaa
            {{/each}}
        {{/each}}
        <table class="table table-bordered">
            <thead>
                <th colspan="4">Project Name</th>
            </thead>
            <tbody>
                {{#each project in model}}
                    <tr>
                        {{#each team in project.teams}}
                            aaaa
                        {{/each}}
                        <td colspan="4">{{project.name}}</td>
                    </tr>
                {{/each}}
            </tbody>
        </table>
    </script>
...
router.js:

App.ProjectsRoute = Ember.Route.extend({
    model: function(){
        return this.store.find('project');
    }
});
当使用Ember Chrome插件进行调试时,我可以看到项目相应地与2个和3个团队相关联,这是正确的,但是,当我运行{log project.teams.length}时,我总是得到0。我怀疑这与我在上面的模型中添加了属性async:true有关,但是,如果没有它,我的代码将无法运行

project.name按预期打印。我无法获取嵌套关系团队的引用

我已经用头撞了三个半小时了。任何帮助都将不胜感激


非常感谢

fixture适配器不强制id,请确保您的id类型匹配(aka“1”!=1)(其余适配器强制)


日志仅在第一次渲染时运行,因此每次都可能始终为0,您是否尝试过在不使用表结构的情况下执行每个操作?(或将第一队纳入tr?)是的,我有。。我几乎已经试过了要做的每件事。。我仍然得到:“Uncaught TypeError:cannotread属性'firstChild'为null”:/@kingpin2k,我已经用你的建议更新了html,没有效果如何将
async:true
添加到
DS.belongsTo('project')
?@claptimes,也尝试过了。我总是犯同样的错误/谢谢回到这个问题上来。我还没有找到解决这个问题的办法。。我也尝试过删除ID周围的引号。。不起作用:/I我看到您的fiddle示例可以工作,但在本地我仍然得到相同的“Uncaught TypeError:Cannot read property'firstChild'of null”错误,即使包括了您在fiddle示例中使用的库……我没有自定义控制器。好的,我刚刚意识到问题所在。我用bootstrap.js来美化我的桌子,这把一切都搞砸了。由于你的努力,我将把你的答案记为正确。谢谢这很有趣,我也遇到了同样的问题,我停止了工作,但今天我又花了几个小时来解决它。@Dragan你停止使用表格的解决方案解决了我的问题,WTF。谢谢你,我会设法找到另一种方式来显示数据。
App.ProjectsRoute = Ember.Route.extend({
    model: function(){
        return this.store.find('project');
    }
});