我有一个时钟'包含一些用户设置的记录。记录保存在本地存储中。如果页面刷新,我不想在我已有的时候创建新的记录。
我使用的是Ember Data和LSAdapter。
我的方法:
在ApplicationRoute中,我检查类型' clock'的记录。存在。
如果是 - >将firstObject作为模型返回 如果没有 - >创建新记录并将其返回
总是创建新记录并返回它的简单情况正常。记录成为我的模特。但是,只要我使用this.find(),路由就会返回一个空模型。
App.ApplicationRoute = Ember.Route.extend({
model : function(){
var length, clock;
var self = this;
this.store.find('clock').then(function(record){
length = record.get("length"); // works
if(length == 0){
clock = self.store.createRecord('clock', {
soundOgg: "data/sounds/cling.ogg",
soundMp3: "data/sounds/cling.mp3"
});
console.log(clock); // prints correct object
return clock; // returns empty model
} else {
clock = record.get('firstObject');
console.log(clock); // prints correct object
return clock; // returns empty model
}
});
}
});
为什么不起作用?有没有更好的方法来返回正确的模型?
答案 0 :(得分:1)
而不是:
this.store.find('clock').then(...
这样做:
return this.store.find('clock').then(...
路由器的model
挂钩应return
承诺。