Ember.js 解析余烬模型中的字符串
我有一个EmberJS模型的计算属性:Ember.js 解析余烬模型中的字符串,ember.js,promise,ember-data,Ember.js,Promise,Ember Data,我有一个EmberJS模型的计算属性: imageUrl: computed('image', function () { let promise = new RSVP.Promise(function (resolve, reject) { resolve('image.png'); }); // return DS.PromiseObject.create({promise: promise}); }), 这是可行的,但是模型将承诺解析为
imageUrl: computed('image', function () {
let promise = new RSVP.Promise(function (resolve, reject) {
resolve('image.png');
});
//
return DS.PromiseObject.create({promise: promise});
}),
这是可行的,但是模型将承诺解析为一个对象,因此我必须执行以下操作:
resolve({image: 'image.png'});
{{result.imageUrl.image}}
要实际访问模板中的值,请使用以下方法:
resolve({image: 'image.png'});
{{result.imageUrl.image}}
而不仅仅是:
{{result.imageUrl}}
显然,问题似乎与DS.PromiseObject有关,但我不知道该用什么来代替,文档在这方面也没有多大帮助。DS.PromiseObject将结果代理到其内容字段。如果只传入一个字符串,可以使用
{{result.imageUrl.content}
检索它。但是,如果您返回一个对象,那么对{{result.imageUrl.image}}
的调用将使用代理,这样当您获取图像时,它将映射到content.image
就我个人而言,我更喜欢使用ember并发
满足我的异步需求:
import { readOnly } from '@ember/object/computed';
import { task } from 'ember-concurrency';
fetchImage: task(function* () {
return yield 'image.url';
}),
imageUrl: readOnly('fetchImage.lastSuccessful.value')
请参阅该插件的文档,查看它是否适合您的需要。DS.PromiseObject将结果代理到其内容字段。如果只传入一个字符串,可以使用{{result.imageUrl.content}
检索它。但是,如果您返回一个对象,那么对{{result.imageUrl.image}}
的调用将使用代理,这样当您获取图像时,它将映射到content.image
就我个人而言,我更喜欢使用ember并发
满足我的异步需求:
import { readOnly } from '@ember/object/computed';
import { task } from 'ember-concurrency';
fetchImage: task(function* () {
return yield 'image.url';
}),
imageUrl: readOnly('fetchImage.lastSuccessful.value')
查看插件的文档,看看它是否适合您的需要。只是一个提示:在es6中,{promise:promise}
如下所示:{promise}
只是一个提示:在es6中,{promise:promise}
如下所示:{promise}