2017-03-07 8 views
0

회사의 제 3 자 사이트 버튼을 이해하려고합니다. 이 버튼은 클래스에 대해 사용자를 등록합니다.녹아웃 데이터 바인딩 클릭

<a class="btn btn-large btn-blue" href="javascript:void(0);" 
     data-bind="click: $root.clickAction.bind($data, ActionType)"> 
     <span data-bind="text: Title">Sign up</span></a> 

나는 회사 내부 웹 사이트의 페이지에이 버튼을 제공하기를 희망했지만 Knockout에는 익숙하지 않습니다. 나는 GET 요청을 이해한다. 만약 그 버튼이 이것과 비슷한 것을했다면 나는 그것을 얻을 것이다.

thirdparty.com?method=register&classId=1234&userId=abcde 

IT는 GET으로 그 녹아웃 버튼을 켜거나 어떻게 든이 제 3 자 사이트에 우리의 내부 사이트에 가입 메커니즘을 제공하는 경우에도 가능합니까? 필자는 더 많은 소스가 필요하다는 것을 확실히 확신 할 수있다.

Firefox 개발자 도구를 사용하고 네트워크 트래픽을 보려고했습니다. 이것이 가능하지 않다면 나는 내 바퀴를 돌리고 싶지 않다.

답변

1

녹아웃은 다양한 수준의 컨텍스트에 액세스 할 수있는 여러 개체를 제공하며 $ root는 그 중 하나입니다. $ root 객체는 루트 컨텍스트의 기본 뷰 모델 객체를 나타냅니다. 예를 들어, HTML 요소는 foreach는 내부로, 다른 바인딩 컨텍스트 내에서, 그리고 각 반복에서 루트 뷰 모델의 방법을 사용하려는 경우 : 내가 볼 수 있도록

var ViewModel = function() { 
 
    this.actionTypes = ko.observableArray([ 
 
     { ActionType: "Type A", Title: "Title A"}, 
 
     { ActionType: "Type B", Title: "Title B"}, 
 
     { ActionType: "Type C", Title: "Title C"}]); 
 

 
    this.clickAction = function(action) { 
 
     // your ajax request would go here 
 
     alert(action); 
 
    } 
 
}; 
 

 
ko.applyBindings(new ViewModel());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script> 
 

 
<div data-bind="foreach: actionTypes"> 
 
    <a class="btn btn-large btn-blue" href="javascript:void(0);" data-bind="click: $root.clickAction.bind($data, ActionType)"> 
 
     <span data-bind="text: Title">Sign up</span> 
 
    </a> 
 
<div>

+0

확인 < span> $ {function() {itemDetails = "Actions": [{ "Title": "가입", "ActionType": 0}, { "Title": "UnRegister", "ActionType": 2}, { "Title": "Request Info", "ActionType": 4}}} 다른 것들의 무리 – jeff

+0

관찰 가능한 배열이 itemDetail.Option 인 것처럼 보입니다. .Actions -이 경우 $ root는 'itemDetail'의 메소드를 사용할 수 있으므로 $ root.clickAction (actionType)은 itemDetail.clickAction (actionType)과 같습니다. –

+0

그래서 this.clickAction 어딘가에서 검색해야합니다. – jeff

관련 문제