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 を延期またはオーバーライドすることもできますか??

ベース コントローラを 1 つだけ使用して、パラメータをオーバーライドし続けることはできますか?

4

1 に答える 1

1

ビューをオーバーライドするには、Feat オブジェクトを拡張FeatExtended = Feat.extend{し、init メソッドで別のビューを使用できます。

を呼び出すときにパラメータを指定することもできますnew Feat({view : MY_VIEW})ここで説明するように、オプション オブジェクトが init() に渡されます。

findAll の質問については、ドキュメントに記載されているように findAll をメソッドとして定義する必要があります

それが役立つことを願っています!

編集 :

例: URL に追加するオプションと HTTP 呼び出しのメソッドを定義する params オブジェクトを渡すことができます。

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 に答える