Javascript 恩伯:不能访问有许多关系编程,而它在车把模板工作?
首先要提到的是,我对余烬非常陌生,尤其是余烬数据。所以我可能遗漏了一些重要的noob东西 有两种模型:Javascript 恩伯:不能访问有许多关系编程,而它在车把模板工作?,javascript,ember.js,ember-data,Javascript,Ember.js,Ember Data,首先要提到的是,我对余烬非常陌生,尤其是余烬数据。所以我可能遗漏了一些重要的noob东西 有两种模型:Result和resultsbset。结果可以由多个子集组成 result.js: import DS from "ember-data"; var Result = DS.Model.extend({ subsets: DS.hasMany("result_subset", {async: true}) // ... }); Result.reopenClass({ FIXTURE
Result
和resultsbset
。结果可以由多个子集组成
result.js:
import DS from "ember-data";
var Result = DS.Model.extend({
subsets: DS.hasMany("result_subset", {async: true})
// ...
});
Result.reopenClass({
FIXTURES: [{id: 1, subsets: [1, 2]}]
});
export default Result;
result-subset.js:
import DS from "ember-data";
var ResultSubset = DS.Model.extend( {
result: DS.belongsTo("result", {async:true}),
singleValue: DS.attr("number")
// ...
});
ResultSubset.reopenClass({
FIXTURES: [
{id: 1, result: 1, singleValue: 21},
{id: 2, result: 1, singleValue: 42}
]
});
export default ResultSubset;
当我从hbs模板中访问模型时,一切正常,如下所示:
{{#each subset in result.subsets}}
{{subset.singleValue}}
{{/each}}
另一方面,当我以编程方式尝试它时(在视图/组件中),子集
是未定义的
// ...
console.log(this.get("result")); // works
console.log(this.get("result").get("subsets")); // undefined
// ...
我正在运行Ember 1.7和Ember data 1.0.0-beta.9
我错过了什么?提前谢谢 您需要像这样解析结果对象:
this.get('result').then(function(resolvedResult) {
resolvedResult.get('subsets').then(function (resolvedSubsets) {
resolvedSubsets.forEach(function(subset) {
console.log(subset);
});
}, function(subsetReject) { /* handle error here */ });
}, function (resultReject) { /* handle error here */ });
记住,余烬中的关系是Promise
s,因此您需要处理这些关系。车把会自动解析这些关系