我从数据存储中的 2 个不同位置收集了 1 个字符串、一个 URL 和一个昵称,我想要做的是将这两者结合起来,这样我就可以在下拉列表中“预选择”。问题是,如果我检查“变量声明”中的值,则会收到文本结果警报,但是如果我在尝试组合两个字符串时发出警报,则会收到 [Object object] ,[Object 对象]
代替。由于某种原因,我首先获得对象对象,然后是 URL,然后是昵称,这甚至不是正确的顺序..?代码如下所示:
preSelect: function (orgSiteId, orgId) {
'use strict';
var url = this.get('store').find('orgSite', orgSiteId).then(function (orgSites) {
alert(orgSites.get('url'));
return orgSites.get('url');
}.bind(this));
var nickname = this.get('store').find('org', orgId).then(function (orgs) {
alert(orgs.get('nickname'));
return orgs.get('nickname');
}.bind(this));
this.set('testFillSelect', nickname + ', ' + url);
alert(this.get('testFillSelect'));
},
这是我想要使用计算属性或观察者的情况吗?我是 Ember.js 的新手,感觉它应该很简单。
最佳答案
您可以使用Promise.all
:
Promise.all([url, nickname]).then(([urlResult, nicknameResult]) => {
this.set('testFillSelect', nicknameResult + ', ' + urlResult);
});
或者只使用异步函数:
async preSelect (orgSiteId, orgId) {
const orgSite = await this.get('store').find('orgSite', orgSiteId);
const org = await this.get('store').find('org', orgId);
const url = orgSite.get('url');
const nickname = org.get('nickname');
this.set('testFillSelect', nickname + ', ' + url);
}
关于javascript - Ember.js 将数据存储中的两个对象合并为一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59987903/