标题和标识为

时间:2016-06-24 13:14:22

标签: knockout.js

我正在将Title和Id的过滤值推送到我的getItem数组:

        self.selectItem = ko.computed(function() {
        return ko.utils.arrayFilter(self.loanItems(), function(item) {
            if (item.Location() == self.userLocation() && item.LoanItem() == self.selectedLoanType() && item.Status() == "Available") {
                self.getItem.push(item.Title(), item.Id());
                }
            });
        });

然后在我看来我想填充我的选择输入,选择我想要将标题和标识显示为值:

<select data-bind="options: getItem,
                   optionsText: 'Title',
                   optionsValue: 'Id', 
                   optionsCaption: 'Select an item...', 
                   value: selectedLoanTitle">
</select>

上面不起作用,请参见下面的屏幕。

Result

1 个答案:

答案 0 :(得分:0)

options数据绑定中输入一个(可观察的)项目数组。 optionsTextoptionsValue数据绑定引用了每个项目中的属性名称。

您构建数据绑定的方式要求getItem数组包含IdTitle属性的项目。

selectItem方法中,您使用两个参数调用push,我猜测它是出错的地方。你正在把两个(据称)字符串推到数组中。

尝试推动:

  1. 整个项目(self.getItem.push(item))或
  2. 具有所需属性(self.getItem.push({ Title: item.Title, Id: item.Id })
  3. 的对象

    另请注意,selectedLoanTitle最终会有Id属性值,而不是Title ...