每个模型 Ember 未在模板中列出模型
Each model Ember not listing the models in template
我正在使用Ember.RSVP.hash在同一路线中创建不同的模型,我在商店中成功创建了模型记录,我可以在控制台中看到数据。
问题是我只能在我的模板中列出两个模型之一。 (回购名称但不是提交消息)。
这里是代码
路线
var gitrepositoriesPromise = function() {
return Ember.$.ajax(reposUrl, {
success: function(repos) {
return repos.map(function(repo) {
return store.createRecord('repo', {
name: repo.name,
description: repo.description
});
});
},
error: function(reason) {
reject(reason);
}});
};
var gitactivitiesPromise = function() {
return Ember.$.ajax(eventsAct, {
success: function(events) {
return events.filter(function(event) {
return event.type == 'PushEvent';
}).forEach(function(item){
return item.payload.commits.map(function(commit){
return store.createRecord('commit', {
message: commit.message,
});
});
});
},
error: function(reason) {
reject(reason);
}});
};
return Ember.RSVP.hash({
commits: gitactivitiesPromise(),
repos: gitrepositoriesPromise()
});
模板
<ul>
{{#each model.repos}}
<li>{{name}}</li>
{{/each}}
</ul>
<ul>
{{#each model.commits}}
<li>{{message}}</li>
{{/each}}
</ul>
所以问题一定出在
{{#each model.commits}}
<li>{{message}}</li>
{{/each}}
我做错了什么? here the jsbin 重现问题。
好的,问题出在您的 gitactivitesPromise
函数中。我已经修改了您使用 Ember.RSVP.hash
:
的方法
var gitactivitiesPromise = function() {
return new Ember.RSVP.Promise(function (resolve) {
Ember.$.ajax(eventsAct, {
success: function(events) {
var result = [];
events.filter(function(event) {
return event.type == 'PushEvent';
}).forEach(function(item){
item.payload.commits.map(function(commit){
result.push(store.createRecord('commit', {
message: commit.message,
}));
});
});
resolve(result);
},
error: function(reason) {
reject(reason);
}
});
});
};
这让您可以在模板中以这种方式访问 message
:
Commits:
<ul>
{{#each model.commits}}
<li>{{this.message}}</li>
{{/each}}
</ul>
结果:
我正在使用Ember.RSVP.hash在同一路线中创建不同的模型,我在商店中成功创建了模型记录,我可以在控制台中看到数据。
问题是我只能在我的模板中列出两个模型之一。 (回购名称但不是提交消息)。
这里是代码
路线
var gitrepositoriesPromise = function() {
return Ember.$.ajax(reposUrl, {
success: function(repos) {
return repos.map(function(repo) {
return store.createRecord('repo', {
name: repo.name,
description: repo.description
});
});
},
error: function(reason) {
reject(reason);
}});
};
var gitactivitiesPromise = function() {
return Ember.$.ajax(eventsAct, {
success: function(events) {
return events.filter(function(event) {
return event.type == 'PushEvent';
}).forEach(function(item){
return item.payload.commits.map(function(commit){
return store.createRecord('commit', {
message: commit.message,
});
});
});
},
error: function(reason) {
reject(reason);
}});
};
return Ember.RSVP.hash({
commits: gitactivitiesPromise(),
repos: gitrepositoriesPromise()
});
模板
<ul>
{{#each model.repos}}
<li>{{name}}</li>
{{/each}}
</ul>
<ul>
{{#each model.commits}}
<li>{{message}}</li>
{{/each}}
</ul>
所以问题一定出在
{{#each model.commits}}
<li>{{message}}</li>
{{/each}}
我做错了什么? here the jsbin 重现问题。
好的,问题出在您的 gitactivitesPromise
函数中。我已经修改了您使用 Ember.RSVP.hash
:
var gitactivitiesPromise = function() {
return new Ember.RSVP.Promise(function (resolve) {
Ember.$.ajax(eventsAct, {
success: function(events) {
var result = [];
events.filter(function(event) {
return event.type == 'PushEvent';
}).forEach(function(item){
item.payload.commits.map(function(commit){
result.push(store.createRecord('commit', {
message: commit.message,
}));
});
});
resolve(result);
},
error: function(reason) {
reject(reason);
}
});
});
};
这让您可以在模板中以这种方式访问 message
:
Commits:
<ul>
{{#each model.commits}}
<li>{{this.message}}</li>
{{/each}}
</ul>
结果: