如何调用“{Model.Foo}更新”模型更新后?
我有一个 javascriptMVC 模型
/**
* @class Hzfrontend.Models.Warmwasser
* @parent index
* @inherits jQuery.Model
* Wraps backend warmwasser services.
*/
$.Model('Hzfrontend.Models.Warmwasser',
/* @Static */
{
findAll: "/api/warmwasser",
findOne : "/api/warmwasser/{id}",
update : "/api/warmwasser/{id}"
},
/* @Prototype */
{
update : function(attrs, success, error){
$.ajax({
type: 'PUT',
url:"/api/warmwasser/"+this.id,
data: $.toJSON(this),
success: success,
error: error,
dataType: "json"});
}
});
和一个控制器:
$.Controller('Hzfrontend.Warmwasser.List',
/** @Static */
{
defaults : {}
},
/** @Prototype */
{
init : function(){
this.element.append(this.view('init',Hzfrontend.Models.Warmwasser.findAll()) )
},
'.waterTemperature change': function( el ){
var mod = el.closest('.warmwasser').model();
mod.attr('waterTemperature', el.val());
mod.update();
steal.dev.log("update waterTemperature");
},
"{Hzfrontend.Models.Warmwasser} updated" : function(Warmwasser, ev, warmwasser){
warmwasser.elements(this.element)
.html(this.view('warmwasser', warmwasser) );
steal.dev.log("updated");
}
});
更新完成后,我想在控制器中调用更新后的回调。如何做到这一点? 如果我使用 ./fixtures/fixtures.js' 在没有服务器后端的情况下测试应用程序,它可以正常工作。
谢谢。
I have a javascriptMVC Model
/**
* @class Hzfrontend.Models.Warmwasser
* @parent index
* @inherits jQuery.Model
* Wraps backend warmwasser services.
*/
$.Model('Hzfrontend.Models.Warmwasser',
/* @Static */
{
findAll: "/api/warmwasser",
findOne : "/api/warmwasser/{id}",
update : "/api/warmwasser/{id}"
},
/* @Prototype */
{
update : function(attrs, success, error){
$.ajax({
type: 'PUT',
url:"/api/warmwasser/"+this.id,
data: $.toJSON(this),
success: success,
error: error,
dataType: "json"});
}
});
and a Controller:
$.Controller('Hzfrontend.Warmwasser.List',
/** @Static */
{
defaults : {}
},
/** @Prototype */
{
init : function(){
this.element.append(this.view('init',Hzfrontend.Models.Warmwasser.findAll()) )
},
'.waterTemperature change': function( el ){
var mod = el.closest('.warmwasser').model();
mod.attr('waterTemperature', el.val());
mod.update();
steal.dev.log("update waterTemperature");
},
"{Hzfrontend.Models.Warmwasser} updated" : function(Warmwasser, ev, warmwasser){
warmwasser.elements(this.element)
.html(this.view('warmwasser', warmwasser) );
steal.dev.log("updated");
}
});
after the update completed I want to invoke the updated callback in the controller. How to do this?
If I use the ./fixtures/fixtures.js' to test the app without a server backend, it works without any problems.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
该代码应该可以工作。您的服务器返回什么作为响应?您应该返回包含您更新的对象的 JSON 响应。
That code should work. What do you return as a response from your server? You should return an JSON response with the object that you updated.
您不应该有原型更新方法。
You shouldn't have a prototype update method.