我想添加另一个函数来从CanJs模型中获取结果
我有这样的事情:
VideomakerModel = can.Model({
id:'ID',
findAll: 'GET /videomakers/',
findNear: function( params ){
return $.post("/get_near_videomakers/",
{address:params.address},
undefined ,"json")
}
},{});
VideomakerModel.findNear({address : "Milan"}, function(videomakers) {
var myList = new VideomakerControl($('#accordionVm'), {
videomakers : videomakers,
view: 'videomakersList'
});
});
如果我将方法命名为findAll,它可以正常工作, 否则命名为findNear它永远不会到达回调
我应该扩展MODEL是否有某种方法?有没有办法添加像FindAll这样的函数?
非常感谢
答案 0 :(得分:2)
CanJS仅将转换添加到标准findOne
,findAll
等模型方法的Model实例中。您必须通过VideoMaker.model
(针对单个项目)或VideoMaker.models
(针对多个项目)运行结果,在您的其他实施方案中自行完成此操作:
VideomakerModel = can.Model({
id:'ID',
findAll: 'GET /videomakers/',
findNear: function( params ) {
var self = this;
return $.post("/get_near_videomakers/", {
address:params.address
}, undefined ,"json").then(function(data) {
return self.model(data);
});
}
},{});
答案 1 :(得分:0)
如果我理解这个问题,就必须这样做:
VideomakerModel = can.Model({
id:'ID',
findAll: 'GET /videomakers/'
},
{
findNear: function(options, success){
can.ajax({
url: "/get_near_videomakers/",
type: 'POST',
data: options,
success: success
})
}
})
var myList = new VideomakerControl({});
myList.findNear({address:params.address}, function(resulrRequest){
//success
} )