import Ember from 'ember';
export default Ember.Route.extend({
logMore: 20,
dateEncode: "",
model: function(){
var url = "https://xxxx/api/xxxx";
var localData = JSON.parse(localStorage.getItem("user"));
var data = { auth_token: localData.user_token };
( this.get('dateEncode') !== "" )? url += "?from="+ this.get('dateEncode') : url;
return Ember.$.ajax({
url: url,
headers: { "X-Api-Token": data.auth_token }
}).then(function(data) {
console.log(data);
return data;
});
}.observes('dateEncode'),
actions: {
loadMore: function(){
var today = new Date();
today.setDate(today.getDate() - this.get('logMore'));
var initial = this.get('logMore') + 10;
this.set('logMore', initial);
this.set('dateEncode', today.toISOString());
}
}
});
我正在使用ajax来调用API并做了一个动作,而不是使用param'从'更改url'它是几天前的日期返回,模态可以调用并返回新数据但模板没有变化,我不知道不知道该怎么做,如果有人可以帮你感谢你的时间。
也许另一种方法(?)
答案 0 :(得分:0)
这里的问题是你滥用模型钩子。仅当路由尚未提供模型以便为控制器生成模型时,才会调用路由的model
挂钩。
您添加到该功能的观察者不会在控制器上更改model
。
我建议扩展控制器以处理此操作(而不是将其发送到路由)并在那里处理loadMore逻辑。
import Ember from "ember";
export Ember.Controller.extend({
actions: {
loadMore: function () {
var model = this.get('model');
Ember.$.ajax({ /* add params */ })
.then(function(data) { model.addObjects(data); });
}
}
});