带有自定义绑定的Durandal 2.0可观察插件

时间:2014-05-08 10:15:25

标签: knockout.js observable durandal-2.0

我遇到了可观察插件和自定义绑定的问题。 Observable插件适用于标准绑定。我已经创建了typeahead自定义绑定,代码如下。插件的最后一部分是问题,如果值是正常的可观察的,它就可以工作。但是对于可观察的插件,它并不是因为该属性不是“正常的”可观察的。如何使用Observable插件设置selectedItem的值?

 ko.bindingHandlers.typeahead = {
        init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
            valueAccessor().initialize();
            var selectedItem = allBindings.get('selectedItem');
            var minLength = allBindings.get('minLength');
            if (!minLength)
                minLength = 3;

            $(element).typeahead(
                {
                    minLength: minLength,
                    highlight: true
                },
                {
                    name: 'best-pictures',
                    displayKey: 'Name',
                    source: valueAccessor().ttAdapter(),
                    templates: {
                        ...
                    }

                }).on('typeahead:selected',
                function (event, suggestion, dataset) {
                    selectedItem(suggestion);
                });

        }
};

用法

<input data-bind="typeahead: projectTasks, selectedItem: task"/>

其中projectTasks是Bloodhound“datasource”

0 个答案:

没有答案