我正在关注史蒂夫桑德森在设计大型SPA的淘汰赛中的例子。我想在我的模板中创建一个bootstrap-multiselect小部件。我在"bootstrap-multiselect": "src/bower_modules/bootstrap-multiselect/dist/js/bootstrap-multiselect",
中加入了require.config.js
。
bootstrap-multiselect是淘汰赛的 - 它已经淘汰了淘汰赛绑定处理程序:
!function($) {
"use strict";// jshint ;_;
if (typeof ko !== 'undefined' && ko.bindingHandlers && !ko.bindingHandlers.multiselect) {
ko.bindingHandlers.multiselect = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
///etc...
如果我将整个init:
和update:
函数复制并粘贴到我的组件js中,我可以让窗口小部件呈现并且表现得恰当。但我不应该这样做。如何在AMD模块中包含bootstrap-multiselect绑定处理程序?只需确保require中包含bootstrap-multiselect不起作用,因为不遵守绑定。似乎我应该能够做类似
define(['knockout', 'bootstrap-multiselect', 'text!./scheduler-profile.html'], function(ko, multiselect, templateMarkup) {
ko.bindingHandlers.multiselect = {
multiselect();
}
但这不起作用。如何在我的AMD模块中包含我的viewmodel的其他文件中定义的绑定处理程序?