I'm having trouble trying to use requireJS with knockout and the knockout mapping merge plugin (not the knockout mapping plugin), see link here: https://github.com/grofit/knockout.mapping.merge/blob/master/src/knockout.mapping.merge.js
script:
requirejs.config({
paths: {
'knockout': 'scripts/knockout-3.0.0',
'ko-merge': 'scripts/knockout_mapping_merge'
},
shim: {
'knockout_mapping_merge': {
deps: ['knockout']
}
}
});
require(['knockout', 'ko-merge'], function (ko) {
var vm = function () {
var self = this;
self.forename = ko.observable("FName1");
self.surname = ko.observable("SName1");
self.merge = function () {
var x = {
forename: 'FName2',
surname: 'SName2'
};
ko.mapping.mergeFromJS(self, x);
};
};
ko.applyBindings(new vm());
});
The error I'm receiving is: SCRIPT5007: Unable to set property 'mergeFromJS' of undefined or null reference File: knockout_mapping_merge.js, Line: 41, Column: 5
The knockout mapping merge is declared like so:
(function(knockout){
...
})(typeof exports === 'undefined'? this['ko'] : require("knockout"));
My understanding is that this should have called knockout as a dependency but it doesn't seem to work... any ideas why?