cos*_*olf 3 javascript jquery promise ember.js
这是一个跟进:访问ember.js中的另一个模型数据
我有一种情况,我想用选择的多选框过滤列表.发送数据时,this.store.find('tag')
始终返回DS.PromiseArray.Ember.Select似乎处理得很好,但选择的多选择似乎不喜欢它.我见过这样的事情:
this.store.find('tag').then(function(items) {
return items.map(function(item){
return [item.get('id'), item.get('name')]
})
})
Run Code Online (Sandbox Code Playgroud)
但我似乎总是在地图函数上得到一个typeerror {} ...
这是一个概述问题的jsfiddle:http: //jsfiddle.net/viciousfish/TEZjW/
奖励积分!演示将所选的选择显示为单个选择(为清晰起见).我想用这个作为一个多选择,这可以通过设置来设置multiple: true
在App.MultipleSelect
这里更新是另一个我认为应该工作的jsfiddle,但似乎不是!http://jsfiddle.net/viciousfish/FZ6yw/1/
更进一步,这个小提琴表明.then应该能够解构promiseArray http://jsfiddle.net/marciojunior/DGT5L/
小智 6
这是一个功能性的jsfiddle http://jsfiddle.net/FZ6yw/2/
我将promise代码移动到路由的afterModel钩子,因为它是友好的承诺https://gist.github.com/machty/5723945
我也改变了map函数,你返回了数组,在我的代码中它返回了对象
App.AssetsRoute = Ember.Route.extend({
model: function () {
return this.store.find('asset');
},
afterModel: function () {
var self = this;
return this.store.find('tag').then(function(items) {
var allTags = items.map(function(item){
return {id:item.get('id'), name:item.get('name')};
});
self.controllerFor('tags').set('content', allTags);
})
},
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2778 次 |
最近记录: |