我在访问我的视图模型中的模型对象时遇到了一些麻烦。这可能只是一个JavaScript/KnockoutJS熟悉的问题,所以任何帮助表示赞赏。这里是我的代码:访问JavaScript数组的元素
<!-- VIEW -->
<select data-bind="options: allTypes,
optionsCaption: 'Choose...',
value: chosenType"></select>
<div data-bind="text: chosenType"></div>
<div data-bind="text: chosenValues"></div> <!-- << This line not working -->
<script type="text/javascript">
/*-- VIEW MODEL --*/
function ViewModel() {
this.chosenType=ko.observable();
this.chosenValues=allValues[this.chosenType]; // <-- Problem here?
}
/*-- MODEL --*/
var allTypes=["Animals","Plants","Minerals"];
var allValues={
"Animals":["Pig","Big pig","Owl"],
"Plants":["Aloe","Fern"],
"Minerals":["Bauxite","Chromite"]
};
ko.applyBindings(new ViewModel());
</script>
我认为这个问题可能在如何声明this.chosenValues。谢谢阅读。
是否有您没有提供一个参数'某种原因ko.observable()'? – djfdev
感谢您的评论。 'ko.observable'没有参数,因为'this.chosenType'不需要默认值,我认为该部分工作正常。 – Rogare
你可以检查'新的ViewModel()'? viewModel.chosenValues'返回undefined? – djfdev