我有一个这样的控件设置:
问题是用户可能会到达一个指向模型的路径的页面,这个页面在控件初始化时是不可用的,显然,模态没有被加载。
can.Control({
init: function() {
can.view('file.ejs', {pages: app.Model.Page.findAll()}, function(frag){
// inject the fragment into DOM
});
},
'page/:id/comments route': function() {
// find the page in the list of models loaded, than display the modal
}
});
如何在渲染视图后再次触发distcher或让控制器遍历路径?
答案 0 :(得分:0)
如果你存储了延迟的findAll返回的地方,你可以在你的路线中使用它来告诉它何时被加载。
http://canjs.com/docs/can.when.html
这是一个将页面存储在Control上的this.pages中的示例:
(看起来不是很好但很容易理解)
can.Control({
init: function() {
this.pages = app.Model.Page.findAll()
can.view('file.ejs', {pages: pages}, function(frag){
// inject the fragment into DOM
});
},
'page/:id/comments route': function() {
can.when(this.pages).then(function(pages){
// find the page in the list of models loaded, than display the modal
})
}
});