async, hasMany 모델 속성의 값을 기반으로 계산 된 속성을 사용하려고하지만 내보기에 표시 할 수 없습니다. 내보기에서비동기 데이터를 기반으로 Ember의 계산 된 속성
MyApp.Foo = DS.Model.extend({
title: DS.attr('string'),
peeps: DS.hasMany('peep', { async: true });
});
MyApp.Peep = DS.Model.extend({
name: DS.attr('string'),
email: DS.attr('string')
});
MyApp.Foo.FIXTURES = [
{ id: 1, title: 'nice', peeps: [1,2] }
];
MyApp.Peep.FIXTURES = [
{ id: 1, name: 'mypeep', email: '[email protected]' },
{ id: 2, name: 'mypeep2', email: '[email protected]' }
];
MyApp.FooController = EmberObjectController.extend({
showPeeps: function() {
// This one works for this test data.
// return [{name: 'baz', email: 'bar'}];
var peepList = this.get('content.peeps.[]').then(function(c) {
// This one does not work, even for this test data.
return {name: 'baz', email: 'bar'}];
});
}.property('content.peeps.[]');
});
의 라인을 따라 뭔가 : 나는 모든 데이터를 볼 수 있습니다
{#each peep in controller.showPeeps}}{{peep.name}}{{/each}}
"다음()"을 console.log()를 사용하고,이에 나타냅니다으로 코드 주석, "then()"에서 반환을 취하면 작동하지만 비동기로 반환되기 때문에 실제 데이터는 비어 있습니다. 정의되지 않은
의 메소드를 호출 할 수 없습니다 '해결'나는 (사용 @each을 사용하여 계산 된 속성 코드의 많은 변종을 시도했다 : 나는 그것이 아닌 비동기 만들려고하면, 나는
catch되지 않은 형식 오류를 얻을 수 model.peeps - 모두 올바르게 console.log()에서 데이터를 보여 주지만 뷰에서는 보이지 않는다. 뷰에서, then()의 바깥쪽에 더미 데이터를 리턴하지 않으면 뷰는 항상 정의되지 않는다.
무엇이 누락 되었습니까?
내가 처음 시도한 것이 었습니다. That can also gets : "Uncaught TypeError : 정의되지 않은 메소드 'resolve'를 호출 할 수 없습니다. –
async를 true로 변경하면이 작업이 완료됩니다. 수락 됨. –
'. @ each' 비트가 필요합니다. 감사! –