Backbonejs确定哪个函数从模型向视图返回了响应
Backbonejs determine which function returned a response from the model to the view
我有一个view.js和一个名为user.js
的模型user.js:
define( function ( require, exports, module )
{
"use strict";
var Backbone = require( 'backbone' );
return Backbone.Model.extend({
defaults: {
flush: false
},
doRejectBatch: function( batchId, flushToConveyer ){
this.functionName = 'doRejectBatch';
this.flush = flushToConveyer;
this.fetch({
type: 'GET',
url:'http://api.com/reject/' + id +'/rej',
xhrFields: {
withCredentials: true
}
});
},
doPatchBatch: function( batchuuid ){
var patchData = {
"status": "rejected",
"jobs_to_conveyer": this.flush
};
this.fetch({
type: 'PATCH',
url: 'http://api.com/api/rej/' + uuid,
contentType: 'application/json',
data: JSON.stringify(patchData),
xhrFields: {
withCredentials: true
}
})
}
});
} );
当一个函数完成时,调用my view.js中的onSync
函数。
onSync: function ( rawData, response ){
var msg = "Reject Request: successfull";
app.regionMessage.show(new MessageView({
model: new Backbone.Model({
msg_type: response[0].status,
msg: msg
})
}));
}
});
我如何在view.js onSync
函数中确定哪个函数的响应是从模型发送的?换句话说,是用doRejectBatch
函数还是用doPatchBatch
函数的响应?注意,view。js实际上是控制器而不是视图
在MVC世界中,你的视图不应该真正了解你的模型:你的控制器应该负责映射模型到视图,反之亦然。在实践中,如果没有比Backbone提供的更严格的框架模型,这可能很难实现,但如果现在将这些概念解耦,从长远来看,您会更高兴。
那么,让我们重新表述你的问题。而不是:
我如何在view.js的onSync函数中确定哪个函数的响应是从模型发送的?换句话说,doRejectBatch函数是使用的还是来自doPatchBatch函数的响应?
这样表达:
如何确定
onSync
期间显示的正确消息?在MVC世界中,你可以这样做:
- 模式:呼叫
doRejectBatch
或doPatchBatch
。在这些方法中,设置status
或state
标志。 - 控制器:绑定到模型的
sync
事件,甚至只绑定到它关心的属性(status
或state
) - 控制器:在控制器的
onSync
处理程序(不是视图的)中,用适当的状态(例如,调用displayStatusMessage
方法或类似的方法)呈现更新后的视图,仅显示消息所需的信息。根据您的需求,这可能不是整个模型或响应对象;它可能只是一个状态指示器。)
您可能还希望探索其他设计,如MVP或MVVM。根据应用程序的需求和复杂性,其中一种模式可能比传统的MVC更适合您。
您可以从模型中的每个函数触发不同的事件,例如:this.trigger('reject:batch')和this.trigger('patch:batch')。然后在视图中有一个不同的处理函数,例如
this.model。On ('reject:batch', function(){/*这里批拒绝的特定处理程序代码*/);
相关文章:
- 如何在Jquery中发布后将值从视图返回到控制器
- 无法在mvc视图中使用ajax调用获取操作返回的模型对象列表
- float's未返回到移动视图结束后的位置
- 从Nodejs中的函数返回数组,并将其发送到ejs视图
- 当视图在AngularJS中返回时,我如何获得异步服务调用来更新视图
- 在主干视图中的每个方法之后是否需要“返回此内容”
- 可以'在使用Javascript/AjaxMVC之后,不会返回到任何视图
- 如何使用jsonp调用返回的数据在Durandal中呈现视图
- 如何在视图中显示json返回的linq列表
- “渲染骨干模型视图”返回未定义的结果
- 如何在返回后将状态保持为突出显示JQuery树视图的选定节点
- 在视图模型中使用 MVC 视图返回 JsonResult 数据
- 挖空映射对象未由杜兰达尔视图模型返回
- 将返回值作为主干视图方法之间的参数传递
- 如何告诉MVC 4视图返回带有子路由的JSON结果
- CanJS视图返回@@!!@@if视图包含HTML表
- JavaScript实现的打印二进制树的左视图返回错误的结果
- Backbonejs确定哪个函数从模型向视图返回了响应
- 我应该从一个简单的django AJAX视图返回什么样的响应?
- 骨干:传递模型属性给视图返回未定义