我想添加另一个函数以从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的功能?

非常感谢你

最佳答案

CanJS仅将转换添加到标准findOnefindAll等模型方法的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);
    });
  }
 },{});

09-17 03:18