0
Featoff = can.Model.extend("featoff",{
        findAll: {
        url: '/api.php/specialoffers?',
        type: 'GET',
        data: { max : 10 , pid : 977 , sid : 5934 }
        }
      }, {});

Feat = can.Control({ init: function()
 { var that = this; can.view('images/js/mn/temps/featured.ejs', featoff.findAll({}).then(function(d) 
{ return { offerdata : d, secTitle : that.element.data('title') }; })).done(function(frag) 
{ that.element.html(frag); }) }}); 

我用 new Feat(); 调用它

这正在工作。所以现在我想在 findAll 中使用不同的参数集重用相同的 Feat 控件,我该怎么做?用什么方法,怎么用??我也可以推迟或覆盖 can.view 吗?

我也可以有一个基本控制器并继续覆盖参数吗?

4

1 回答 1

1

要覆盖视图,您可以扩展您的 Feat 对象FeatExtended = Feat.extend{并在 init 方法中使用不同的视图。

调用时也可以给参数new Feat({view : MY_VIEW})。一个选项对象被传递给 init() 描述here

对于 findAll 问题,您应该将 findAll 定义为文档中描述的方法

希望有帮助!

编辑 :

例如:您可以传递一个 params 对象,定义要在 URL 中添加的选项和 HTTP 调用的方法

Featoff = can.Model.extend({
  findAll : function(params){
    return $.ajax({
      url: '/api.php/specialoffers?' + params.myoption,
      type: params.method,
      dataType: 'json'})
  }
},{})
于 2014-01-08T18:57:23.457 回答