Knockout Js和Typeahead

时间:2015-11-17 20:47:19

标签: javascript jquery knockout.js typeahead.js

enter image description here

Hello Knockout / typeahead专家,我从上面的typeahead js获得建议。我以数组格式提供数据

// ==UserScript==
// @name        Steam - accept the agreement
// @include     http://steamcommunity.com/market/listings/*
// @require     https://greasyfork.org/scripts/12228/code/setMutationHandler.js
// ==/UserScript==


// maybe the elements are already on the page
checkThem([].slice.call(document.querySelectorAll('input[type="checkbox"]')));

// but anyway set a MutationObserver handler for them
setMutationHandler(document, 'input[type="checkbox"]', checkThem);

function checkThem(nodes) {
    nodes.forEach(function(n) { n.checked = true });
}

我的绑定代码是我在stackoverflow中找到的标准绑定。我绑定到文本框

var itemsRandom= ['Apple', 'Ball','Ape'];

数据甚至没有绑定到淘汰赛js。建议得到高度赞赏。

<input type="text" data-bind="typeahead:itemsRandom,value: selectedItem">  

2 个答案:

答案 0 :(得分:1)

如果您使用的是最新版本的打字头,即0.11,则代替

valueKey: 'value',

使用

displayKey: 'value',

答案 1 :(得分:0)

要使用KO绑定自动完成功能,我在上面的代码中删除了更新程序并使用如下

  var updateValues = function (val) {
                allBindings.value(val);
            };
          //  debugger;
            $element.attr("autocomplete", "off")
                    .typeahead({
                            hint: true,
                            highlight: true,
                            minLength: 0,

                    }, {
                        source: substringMatcher(source),
                        items: allBindings,
                        displayKey: 'value',
                        limit:100

                    }).on('typeahead:selected', function (el, item) {
                        updateValues(item.value);
                    }).on('typeahead:autocompleted', function (el, item) {
                        updateValues(item.value);
                    });
        }
    };