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');
}
});