Knockoutjs foreach绑定

时间:2013-07-25 19:13:36

标签: javascript knockout.js

我的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”语句也不起作用,所以我想知道我是否只是这样做完全错了。谢谢!

0 个答案:

没有答案