我的 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_type”属性。但无论我尝试做什么,我都无法访问问题的第 [0] 个元素。尽管问题数组中的对象似乎在调试期间打印,但当我尝试直接访问它时,问题 [0] 始终未定义。
我的目标是为“语言”选择一个菜单,我将以用户想要的任何语言显示问题。那么我应该如何访问问题数组的一个特定元素呢?
“if”语句也不起作用,所以我想知道我这样做是否完全错误。谢谢!