2017-05-23 3 views
0

나는 녹아웃을 알고 있고 몇 가지 조건부 바인딩을 수행하는 방법에 대한 질문이 있습니다. 선택한 옵션에 따라 다른 입력을 표시하고 숨기는 드롭 다운 입력이 있습니다. 그 일을하고 있지만 페이지가 이미 이전에 게시 된 후에 페이지를로드 할 때 문제가 있습니다. 이전에 선택되어 게시 된 드롭 다운 입력을 얻을 수 있지만 다른 입력에 대해 발생하는 바인딩 (표시 및 숨기기)이 트리거되지 않습니다. 아래를 참조하십시오 :녹아웃 ObservableArray

<script> 
function ViewModel() { 
    this.selectedPet = ko.observable(); 
    var petArray = ["Dog", "Cat", "Fish"]; 
    this.petOptions = ko.observableArray(petArray); 
}; 
ko.applyBindings(new ViewModel); 
</script> 


<form> 
    <select data-bind="options: petOptions, value: selectedPet" asp-for="Pets"> 
    </select> 

    <input data-bind="visible: petOptions() === "Dog" asp-for="DogFood" /> 
    <input data-bind="visible: petOptions() === "Cat" asp-for="CatFood" /> 
    <input data-bind="visible: petOptions() === "Fish" asp-for="FishFood" /> 
</form> 

답변

0

내가해야 할 것을 알아 냈습니다. 처음 관찰 가능한 값을 게시 된 값으로 설정해야합니다.

var onLoadPet = "@Model.Pet.Value"; 
function ViewModel() { 
    this.selectedPet = ko.observable(onLoadPet); 
}