Knockout ObservableArray

时间:2017-05-23 17:38:52

标签: asp.net knockout.js

我知道要淘汰并且有关于如何进行某些条件绑定的问题。我有一个下拉输入,根据所选的选项显示和隐藏其他输入。我有这个工作,但我在以前已经发布页面后加载页面时遇到问题。我能够获取先前选择和发布的下拉输入,但不会触发其他输入发生的绑定(显示和隐藏)。请参阅以下内容:

<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>

1 个答案:

答案 0 :(得分:0)

我想出了我需要做的事情。我需要将初始可观察值设置为已发布的值。

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