2013-02-22 11 views
2

관찰 가능한 배열이있는 선택 상자에서 옵션을 설정하려고합니다. 채울 옵션을 얻을 수는 있지만 어레이는 하나의 옵션으로 나타나며, 내가 보았을 때 가치가 없습니다.녹아웃 관측 가능한 배열 + 선택 상자

var Model = function (properties) { 
    this.AvailableLenders = ko.observableArray(); 

    this.ModifyLenders = function (newProperties) { 
     var lenders = [], 
      count = 0; 

     ko.utils.arrayForEach(newProperties || properties, function (item) { 
      var lender = item.Lender; 

      if (lender) { 
       if (lenders.indexOf(lender) == -1) { 
        lenders[count] = lender; 

        count++; 
       } 
      } 
     }); 

     this.AvailableLenders.removeAll(); 

     return this.AvailableLenders.push(lenders.sort()); 
    }; 

    this.ModifyLenders(); 
}; 

ko.applyBindings(new Model([{Lender: "ASB"}, {Lender: "ANZ"}])); 

HTML :

<select multiple="multiple" name="Lender" id="Lender" data-bind="options: AvailableLenders, optionsCaption: 'Please select a lender'"></select> 

답변

1

내가 문제를 발견

다음은 fiddle와 코드 아래입니다.

문제는 당신은 내가 변화 아래 만든

var Model = function (properties) { 
this.AvailableLenders = ko.observableArray(); 

this.ModifyLenders = function (newProperties) { 
    var lenders = [], 
     count = 0; 

    ko.utils.arrayForEach(newProperties || properties, function (item) { 
     var lender = item.Lender; 

     if (lender) { 
      if (lenders.indexOf(lender) == -1) { 
       lenders[count] = lender; 

       count++; 
      } 
     } 
    }); 

    this.AvailableLenders.removeAll(); 

    console.log("lenders ", lenders) 
    console.log("lenders.sort() ", lenders.sort()) 

AvailableLenders 배열의 단일 인덱스에 대출 배열을 밀고있다. 이

이 바이올린이 두 줄을 추가하고

+1

네 아, 좋은 한 가지 대답으로 표시를

this.AvailableLenders.push(lenders[0]); this.AvailableLenders.push(lenders[1]); return this.AvailableLenders.push(lenders.sort()); }; this.ModifyLenders(); }; ko.applyBindings(new Model([{ Lender: "ASB" }, { Lender: "ANZ" }])); 

을 무슨 일이 일어나고 있는지 확인 일어나고있는 이유를 이제 이해하실 수 있습니다! 내 문제를 해결했습니다! – Colin

관련 문제