我提交的其中一条烬路线中的表格我只需要新鲜,
App.PostController = Ember.ObjectController.extend({
actions: {
submit: function(e){
var comment = this.get("ncomment");
this.set("ncomment","");
var self = this;
$.post('/api/comment.php' , {comment : comment})
.done(function(){
self.refresh();
});
}
}
});
此代码给我一个错误 TypeError:self.refresh不是函数
我该如何解决这个问题?
答案 0 :(得分:1)
对PostRoute进行操作,调用路由的refresh()方法并从控制器调用该操作。
像这样。
App.PostController = Ember.ObjectController.extend({
actions: {
submit: function(e){
var comment = this.get("ncomment");
this.set("ncomment","");
var self = this;
$.post('/api/comment.php' , {comment : comment})
.done(function(){
self.send('refreshRoute');
});
}
}
});
App.PostRoute = Ember.Route.extend({
actions: {
refreshRoute:function(){
this.refresh()
}
}
});
答案 1 :(得分:1)
要在具有相同型号的同一路线上再次输入,您需要在该路线上调用Em.Route.refresh
方法。要从Em.Controller
执行此操作,您需要访问该路由。通常,您可以通过this.get('target')
(内部控制器)来完成。然后,控制器必须send
动作来路由:this.get('target').send('actionName')
(该动作必须在路由的动作哈希中)。
完整示例:
App.IndexRoute = Ember.Route.extend({
actions: {
refresh: function() {
this.refresh();
}
}
});
App.IndexController = Ember.ObjectController.extend({
actions: {
ref: function(){
this.get('target').send('refresh');
}
}
});