2014-01-08 4 views
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); }) }}); 

나는 이것을 새로운 Feat();캔버스에서 Defer를 사용하는 방법

현재 작동 중입니다. 이제 findAll에서 다른 Feat 컨트롤을 다른 매개 변수 세트로 재사용하고 싶습니다. 어떻게 할 수 있습니까? 어떤 방법을 사용하고 사용하는 방법 ?? 또한 나는 can.view 같은 것을 연기하거나 무시할 수 있습니까 ??

기본 컨트롤러가 하나만 있어도 매개 변수를 계속 무시할 수 있습니까?

답변

1

보기를 재정의하려면 feat 객체 FeatExtended = Feat.extend{을 확장하고 init 메소드에서 다른보기를 사용할 수 있습니다.

new Feat({view : MY_VIEW})으로 전화 할 때 매개 변수를 지정할 수도 있습니다. 옵션 객체는 here으로 init()에 전달됩니다.

당신 findall은 질문에 대해, 당신이 도움이 documentation

희망에 설명하는 등의 방법으로 findall은을 정의해야합니다!

편집 :

예를 들어

: 당신은 옵션을 정의하는 PARAMS 객체를 URL에 추가 될 나는 간단한 아이디어를 가지고

Featoff = can.Model.extend({ 
    findAll : function(params){ 
    return $.ajax({ 
     url: '/api.php/specialoffers?' + params.myoption, 
     type: params.method, 
     dataType: 'json'}) 
    } 
},{}) 
+0

는 HTTP 호출의 방법을 통과하지만 난 얻을 수 있습니다 예 ?? 기능 (PARAMS) { 반환 $의 아약스 ({ URL : '? /api.php/specialoffers'+ params.myoption – user3083664

+0

그래서 나는 BASEMODEL가 BASEMODEL = can.Model.extend ({ findall은 말할 수 있습니다 , 형식 : params.method, dataType : 'json'}) } } 컨트롤에서 findAll을 사용하고 데이터를 재정의합니다. 그래서 다음 A = can.control.extend ({ Basemodel.findAll ({url, type})}})를 호출합니다. – user3083664

+0

예 : {url : "my_url", 유형 : "post"} – Thomas