Tôi muốn tải toàn bộ bộ sưu tập và sau đó chỉ bóc các bản ghi để sử dụng làm mô hình một lần, mà không phải thực hiện một lần tới máy chủ mỗi lần .Model.find(). Sau đó() kích hoạt trước khi các bản ghi thực sự được tải
Tôi đã tìm hiểu cách sử dụng Ember.Deferred để trả lại lời hứa, nhưng tôi không thể có được lời hứa để giải quyết vào đúng thời điểm. Mã sau đây chỉ xuất ra "Đã tìm thấy 0" bao giờ:
App.PersonRoute = Ember.Route.extend({
model: function(params) {
var name = "Erik";
var promise = Ember.Deferred.create();
App.people = App.Person.find();
App.people.then(function() {
console.log('Found ' + App.people.get('length'));
var person = App.people.findProperty('name', name)
promise.resolve(person);
});
return promise;
}
});
Nếu tôi quấn phần thân của() trong một setTimeout và đợi vài giây, mọi thứ hoạt động tốt.
Có sự kiện nào khác mà tôi có thể liên kết bằng cách nào đó không? Tôi đã thử App.people.on ('isLoaded'), nhưng isLoaded luôn đúng.
Cảm ơn!