Data binding WinJS双向绑定返回未定义

Data binding WinJS双向绑定返回未定义,data-binding,winjs,Data Binding,Winjs,我是window8开发的新手,我基本上是在尝试实现这个链接 我使用的视图模型如链接示例中的图8所示,但是我无法显示数据,它显示了未定义,但是如果我只给出数组的一个元素,我就能够绑定它 我的用户界面是 <body> <section aria-label="Main content" role="main"> <!-- display each person --> <div id="nameLabel">Name<

我是window8开发的新手,我基本上是在尝试实现这个链接 我使用的视图模型如链接示例中的图8所示,但是我无法显示数据,它显示了未定义,但是如果我只给出数组的一个元素,我就能够绑定它

我的用户界面是

<body>
   <section aria-label="Main content" role="main">
      <!-- display each person -->
      <div id="nameLabel">Name</div>
      <input id="name" readonly="true" type="text" data-win-bind="value: name" />
      <div id="ageLabel">Age</div>
      <input id="age" readonly="true" type="text" data-win-bind="value: age" />
      <div id="colorLabel">Favorite Color</div>
      <div id="color" data-win-bind="style.backgroundColor:favoriteColor"></div>
      <div id="buttons">
        <button id="previousButton"></button>
        <button id="birthdayButton"></button>
        <button id="nextButton"></button>
      </div>
    </section>
</body>
结果是:


请帮助我将UI与数据模型绑定。提前感谢。

出现问题的原因是您用
WinJS.Binding
双重包装了
person
。执行此操作时,需要将属性路径更改为:

data-win-bind="value: person.name"
创建
viewModel
属性时,它创建了一个包含实际
person
实例的新属性:

var viewModel = WinJS.Binding.as({ person: people[current+1] });

另外,请注意,WinJs中没有双向绑定

感谢您的回复,我可以看到列表中的第一项,但每当我单击“下一步”按钮时,它都不会显示列表中的第二项。你能帮我一下吗?你开始绑定第二个
项,而不是代码中的第一个:
person:people[current+1]
。我希望它是
人:人[当前]
。这是一个零基数组。
var viewModel = WinJS.Binding.as({ person: people[current+1] });