我正在尝试实现延迟加载分页。我有一个代表分页视图中的'页面'的模型。它包含一组分页对象和一组其他“页面”的嵌套集合。 (请参阅https://gist.github.com/hooverlunch/6314207)我不想在点击链接后才加载其他页面的对象数组。在Ember.js中延迟加载?
但似乎路由的模型方法只触发一次,当页面第一次加载。
有没有什么办法可以在每次点击相关链接时触发它?还是有更好的方法来做到这一点?
我正在尝试实现延迟加载分页。我有一个代表分页视图中的'页面'的模型。它包含一组分页对象和一组其他“页面”的嵌套集合。 (请参阅https://gist.github.com/hooverlunch/6314207)我不想在点击链接后才加载其他页面的对象数组。在Ember.js中延迟加载?
但似乎路由的模型方法只触发一次,当页面第一次加载。
有没有什么办法可以在每次点击相关链接时触发它?还是有更好的方法来做到这一点?
当您通过url直接访问路线时,会调用模型挂钩,但在您使用linkTo helper或通过transitionTo传递上下文时不会调用模型挂钩。如果在这些情况下需要调用某些内容,请改用路由的setupController钩子。
见In Ember.js does setupController and model hooks work only for dynamic segments?
在您的路线创建一个动作
<button {{action 'goToPage' pageObj}}>{{pageObj.id}}</button>
添加
Myember.KbGlyprobsPageRoute = Ember.Route.extend({
events: {
goToPage: function(pageObj){
var newPage = Myember.KbGlyprobPage.find(pageObj.id);
this.transitionTo('Page', newPage);
}
}
});
作为事实上,现在我彻头彻尾的困惑,为什么模型方法不击中每个链接点击.... – hooverlunch
哦,等等,现在我明白了。如果已经存在,则不需要加载模型。但那我该怎么办?也许是路线上的过渡事件? – hooverlunch