Javascript 在余烬数据中是否有一个钩子可以用来知道它何时向服务器发送请求?

Javascript 在余烬数据中是否有一个钩子可以用来知道它何时向服务器发送请求?,javascript,ember.js,ember-data,Javascript,Ember.js,Ember Data,仅当数据不在存储中时(如果ember向服务器发送请求),我才需要显示微调器 有什么方法可以做到这一点吗?save返回一个承诺,您可以推断它是在调用save之前启动的,并推断它是在承诺解决后完成的 console.log('saving'); record.save().then(function(){ console.log('done saving'); }); // finally might be more appropriate in case it fails 您还可以连接到aj

仅当数据不在存储中时(如果ember向服务器发送请求),我才需要显示微调器


有什么方法可以做到这一点吗?

save
返回一个承诺,您可以推断它是在调用
save
之前启动的,并推断它是在承诺解决后完成的

console.log('saving');
record.save().then(function(){
  console.log('done saving');
}); // finally might be more appropriate in case it fails

您还可以连接到
ajaxStart
ajaxStop
并在那里放置一个微调器

您可以获取模型的当前状态

您的控制器:

savingObserver: function(){
  this.set('showSpinner', this.get('model.isSaving'));
}.observes('model.isSaving')
如果这是真的,请显示微调器

或者,如果要查看多条记录,请执行以下操作:

savingObserver: function(){
  this.set('showSpinner', this.get('content').isAny('isSaving', true);
}.observes('content.@each.isSaving')

看起来很有趣,什么是唱片?我的模型中有
this.store.find('item',{client:client}),
。我怎么知道它什么时候会保存结果呢?在这种情况下,记录是您从存储中获得的一个“项目”。我添加了一个示例。嗯,im get Undefined不是'isAny'的函数。我将savingObserver放入控制器。我错过什么了吗?和+1表示想法;)我不认为内容是可枚举的。我有多条记录,而且我不认为在ember中使用ajaxStart是干净的,如果这有意义的话。这很好,ember本身不是一个ajax库,所以不管你怎么做,它都是在ember之外的。Ember Data也不是一个ajax库,它是一个记录管理库,它使用jquery进行ajax调用,但它确实提供了一些承诺,可以让您在保存模型时最方便地查看Ember Data。当您处理可以同时保存的多个记录时,使用带有
ajaxStart
ajaxStop
的push-pop策略可能是最干净的解决方案。