Custom Binding Handlers With Knockout and RequireJS
bindinghandlers, knockout.js, requirejs
Solution
Since custom bindings modify the `ko` object, they only need to be loaded once, and their modules do not need to return anything. If you have a main/entry/app section as the first step in your app, simply requiring your custom bindings and extenders is all you need to do.
define(['jquery', 'knockout'], function($, ko)){
// Custom Bindings
ko.bindingHandlers.returnKey = { ... }
//NO return needed
});
Then, in your startup section, just
require('lib/custom-ko-bindings');
Problem
I'm having an issue applying custom binding handlers when using knockout with requireJS. Basically, in the past I've included a global binding-handler js file that contains all my custom bindings. Now that I'm using requireJS to enforce dependencies, I'm not sure how to access these custom bindings. I used to do create the global functions with ``` function KOCustomBindings() { // Custom Bindings ko.bindingHandlers.returnKey = { //handler code } } ``` Now that I'm using require, I feel as if I should have a define statement ``` define(['jquery', 'knockout'], function($, ko)){ // Custom Bindings return KOCustomBindings; } }); ``` However, I don't believe the bindings will execute unless specifically called, perhaps in a shim? Does anyone have any ideas on this? Thanks for your help,