0

저는 automapper KO를 처음 사용했습니다.녹아웃 매핑 선택 json이 작동하지 않습니다.

var jData = [ 
        { "Id": 2, "Name": "A" }, 
        { "Id": 3, "Name": "B" }, 
        { "Id": 4, "Name": "C" }] 
      }; 
     var viewModel = ko.mapping.fromJSON(JSON.stringify(jData)); 
     ko.applyBindings(viewModel); 

이 코드는 작동 :이 코드가

<div data-bind="foreach : $data"> 
      <input type="text" data-bind='value: Name' /> 
      <br /> 
     </div> 

하지만을 나는지도를 통해 선택하려면 :

사용 나는이 오류가 발생

<select id="prova" data-bind='options: $data, optionsText: "Name", optionsValue: "Id" , value: Id'></select> 

바인딩을 구문 분석합니다. 메시지 : ReferenceError : 'Id'는 정의되지 않았습니다. 바인딩 값 : options : $ data, optionsText : "Name", optionsValue : "Id", 값 : Id

무엇이 잘못 되었습니까? 감사합니다. L

답변

2

jsfiddle 루트를 값 1

<select id="prova" data-bind='options: $data, optionsText: "Name", optionsValue: "Id", value: "Id"'></select> 

로 하나를 선택합니다 단지 아이디로 설정 드롭 다운에서 선택한 값을 설정하는 데 사용되어야한다 문제의 원인은보기 모델에 ID 속성이 포함되어 있지 않기 때문입니다. 추가해야합니다.

var jData = [ 
        { "Id": 2, "Name": "A" }, 
        { "Id": 3, "Name": "B" }, 
        { "Id": 4, "Name": "C" }] 

function ViewModel(){ 
    var self = this; 

    self.list = ko.mapping.fromJSON(JSON.stringify(jData)); 
    self.Id = ko.observable(); 
} 

var viewModel = new ViewModel(); 
ko.applyBindings(viewModel); 

HTML :

여기
<select id="prova" data-bind='options: list, optionsText: "Name", optionsValue: "Id" , value: Id'></select> 

하는 노력 바이올린 : http://jsfiddle.net/ardr8/

나는 이런 식으로 뭔가를 구현 것
2

문제는 값 : Id 바인딩에 있으며, ID는 ""에 있어야합니다. 또한, 바인딩 값은 항상 확인 여기 http://jsfiddle.net/uVfgx/

관련 문제