我正在关注 Steve Sanderson 在 Architecting Large SPA's in knockout js 中的示例。我想在我的模板中创建一个引导多选小部件。我已经包含"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 中是行不通的,因为不遵守绑定。似乎我应该能够做类似的事情
define(['knockout', 'bootstrap-multiselect', 'text!./scheduler-profile.html'], function(ko, multiselect, templateMarkup) {
ko.bindingHandlers.multiselect = {
multiselect();
}
但这不起作用。如何在具有我的视图模型的 AMD 模块中包含在不同文件中定义的绑定处理程序?