custom_bindings/dataField.js

/**
 * A custom binding used to add domData to template field
 * @module app/custom_bindings/dataField
 * @requires knockout
 * @requires ko-mapping
 */
define(['knockout', 'ko-mapping'], function(ko, mapping) {
    ko.bindingHandlers.dataField = {
        init: function(el, valAccessor, allBindings, viewModel, bindingContext) {
            var field = valAccessor(),
                data = field.constructor.name === 'Field' ? field : mapping.toJS(field);

            ko.utils.domData.set(el, 'field', data);
        }

    };
});