路由模型更改时更新模板(?)
Updating template when route model changes (?)
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 并执行了一个操作,而不是用参数 'from' 更改 url 这是一个日期 return 一些几天前,模态可以调用并 return 新数据,但模板没有变化,我不知道该怎么做,如果有人可以帮助感谢您的时间。
也许还有另一种方法 (?)
这里的问题是您误用了模型挂钩。仅当尚未为路由提供模型以便为控制器生成模型时,才会调用路由的 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); });
}
}
});
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 并执行了一个操作,而不是用参数 'from' 更改 url 这是一个日期 return 一些几天前,模态可以调用并 return 新数据,但模板没有变化,我不知道该怎么做,如果有人可以帮助感谢您的时间。
也许还有另一种方法 (?)
这里的问题是您误用了模型挂钩。仅当尚未为路由提供模型以便为控制器生成模型时,才会调用路由的 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); });
}
}
});