我正在构建一个 Durandal 应用程序,我目前正在处理的视图有两个<select>
框。我将它们都绑定到 ako.observableArray
并将它们的值绑定到 anotherko.observable
如下:
<select data-bind="options: dateOptions, optionsText: 'display', value: selectedDate></select>
<select data-bind="options: buyerOptions, optionsText: 'display', value: slectedBuyer"></select>
第二个取决于第一个的值,所以我在不同的时间填充它们。首先,我在activate()
调用期间查询我的数据源,然后在请求返回的承诺得到解决时将数据传递给单独的方法以填充数组数据(以简单的 JS 对象的形式):
var populateDateOptions = function(dates) {
$.each(dates, function() {
dateOptions.push({
display: dateToString(this.pbDateOpt),
date: this.pbDateOpt
});
});
};
效果很好 -<select>
呈现视图时为我准备好了值。但是,在那之后,我无法<select>
响应它们各自可观察数组的变化。一旦在 first 中选择了一个值,next<select>
就会以几乎相同的方式填充<select>
,我可以验证该buyerOptions
数组确实正在填充,但<select>
不会改变。我还尝试<select>
通过开发工具将对象推送到其数组中,从而为第一个添加一个值,并获得相同的结果:数组已更新,但 UI 没有更改。
我在其他几个应用程序中使用了“选项”绑定,以前从未遇到过这个问题,但这是我的第一个 Durandal 应用程序,所以我想知道是否可能缺少一些东西?
谢谢!
更新 我在视图中添加了一些更多的绑定元素,但它们都没有工作,所以作曲家一定有一些奇怪的事情发生。不知道从哪里开始寻找问题(视图模型和视图在结构上与另一对工作正常的非常相似)。有小费吗?