我的KnockoutJS 2.3.0应用程序中有以下HTML:
<div data-bind="foreach: chosenSurvey().questions">
<pre data-bind="text: ko.toJSON($data.question, null, 2)"></pre>
<label data-bind="text: $data.question_type"></label>
<label data-bind="text: $data.question[0].content"></label>
<div>
<!-- ko if: question_type == 'input' -->
<input type="text" />
<!-- /ko -->
<!-- ko if: question_type == 'textarea' -->
<textarea></textarea>
<!-- /ko -->
</div>
我得到以下输出:
[
{
"content": "Where are you from?",
"lang_id": 0
},
{
"content": "¿De donde está?",
"lang_id": 1
}
]
input
控制台错误:
Uncaught Error: Unable to parse bindings.
Message: TypeError: Cannot read property 'content' of undefined;
Bindings value: text: $data.question[0].content
所以foreach看起来很好。我可以使用调试技术查看'question'属性。我可以看到正确打印'question_type'属性。但无论我尝试做什么,我都无法访问问题的[0]元素。虽然问题数组中的对象似乎在调试期间打印,但当我尝试直接访问时,问题[0]总是未定义。
我的目标是选择“语言”菜单,我将以用户想要的任何语言显示问题。那么我应该如何访问问题数组的一个特定元素呢?
“if”语句也不起作用,所以我想知道我是否只是这样做完全错了。谢谢!