我有一个使用淘汰赛创建的 ViewModel,其中包含我的产品的所有信息。
它看起来像这样:
var ProductViewModelDS = function (data) {
var self = this;
self.ProductSKUID = ko.observable(data.ProductSKUID);
self.ProductID = ko.observable(data.ProductID);
self.ProductSKUStockCode = ko.observable(data.ProductSKUStockCode);
self.ProductSKUManufacturePartNumber = ko.observable(data.ProductSKUManufacturePartNumber);
self.ProductSKUName = ko.observable(data.ProductSKUName);
self.ProductSKUPrice = ko.observable(data.ProductSKUPrice);
self.ProductSKUSpecialPrice = ko.observable(data.ProductSKUSpecialPrice);
self.ProductSKUIsOnSpecial = ko.observable(data.ProductSKUIsOnSpecial);
self.ProductSKUMinimumOrderQty = ko.observable(data.ProductSKUMinimumOrderQty);
self.ProductSKUMaximumOrderQty = ko.observable(data.ProductSKUMaximumOrderQty);
self.ProductSKUCurrentStock = ko.observable(data.ProductSKUCurrentStock);
}
我想提前使用引导类型,以便我可以查看产品信息。
我找到了这个Article这给了我执行此操作的事件处理程序。
但一旦我开始输入,我的控制台就会出现此错误:
未捕获的类型错误:对象 [object Object] 没有方法“toLowerCase” bootstrap.js:1831
未捕获的类型错误:无法使用“in”运算符在 1 中搜索“length”
看看您提供的链接,您是否没有找到错误的目标和来源?
基本上,类型提前插件似乎需要一个可用于自动完成建议的字符串值数组。将 SearchText 属性添加到 ProductViewModel 中,该属性循环遍历所有产品并将所需的三个字段放入 searchterm 数组中。
var ProductViewModel = function () {
self.SearchText = ko.computed(function()
{
var searchableTerms = [];
ko.utils.arrayForEach(self.Products(), function (item)
{
searchableTerms.push(item.ProductSKUName());
searchableTerms.push(item.ProductSKUStockCode());
searchableTerms.push(item.ProductSKUManufacturePartNumber());
});
return searchableTerms;
});
};
然后将 html 更新为:
<div class="well">
<input type="text" data-bind="typeahead: { target: Products, source: SearchText }" />
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)