2013-12-18 5 views

답변

2

첨부 된 메소드를 뷰 모델에 만들거나 사용자 정의 바인딩을 만들 수 있습니다.

예컨대 :

define(function() { 

var vm = { 
     activate: activate, 
     attached: attached 
} 

var activate = function() { 
    //Do vm activation here 
}; 

var attached = function(view) { 

     //do any dom stuff here.  
     var $testingShifter = $(view).find('.testingShifter'); 
     $testingShifter.shapeshift(); 
}; 
return vm; 

});

ko.bindingHandlers.shapeShift= { 
    init: function (element, valueAccessor, allBindingsAccessor, viewModel) { 
     var allBindings = allBindingsAccessor(); 

     var $testingShifter = $(element); 
     $testingShifter.shapeshift(); 

     }); 
    } 
} 

사용자 지정 바인딩 처리기

또는

을 사용하여 호출 될 것이다 : HTML 요소에

data-bind="shapeshift:value" 

.

희망이 도움이됩니다.

+0

+1 뷰에 연결된 콜백 범위를 지정합니다. 'find' 대신에 선택적인 문맥을 사용하는 대체 구문. '$ ('. testingShifter',보기) .shapeshift();' http://api.jquery.com/jQuery/#jQuery-selector-context를 참조하십시오. – RainerAtSpirit

+0

그래, Rainer에게 그걸 할 수있는 좋은 방법이야 - 우연히 이번 주 sharepoint에서 Durandal의 구현을보고 있었어 :) –

+0

Oldie,하지만 goldie 나는 희망한다. 최근 예제는 http://rainerat.spirit.de/djODataAPIExplorer/를 참조하십시오. – RainerAtSpirit