Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // merge policy function
- fluid.registerNamespace("decapod.modelReplacementComponent");
- decapod.modelReplacementComponent.extend = function (target, source) {
- target = target || {};
- if (fluid.isArrayable(target)) {
- target = typeof(source) !== "undefined" ? source : target;
- } else {
- for (var key in source) {
- if (typeof(target[key]) === "object" ) {
- target[key] = decapod.modelReplacementComponent.extend(target[key], source[key]);
- } else {
- if (typeof(source[key]) !== "undefined") {
- target[key] = source[key];
- }
- }
- }
- }
- return target;
- };
- decapod.modelReplacementComponent.mergeModel = function (target, source) {
- if (!fluid.isPrimitive(target)) {
- return decapod.modelReplacementComponent.extend(target, source);
- }
- };
- fluid.defaults("decapod.modelReplacementComponent", {
- gradeNames: ["fluid.viewComponent", "autoInit"],
- mergePolicy: {
- model: decapod.modelReplacementComponent.mergeModel
- }
- });
- // Test code below
- var newModel = {
- a: "A",
- b: ["C"]
- };
- fluid.defaults("decapod.test.overideModel", {
- gradeNames: ["decapod.modelReplacementComponent", "autoInit"],
- model: {
- a: "a",
- b: ["c", "d"]
- }
- });
- var that = decapod.test.overideModel(".dc-test", {
- model: fluid.copy(newModel)
- });
- jqUnit.assertDeepEq("The model should be overridden.", newModel, that.model);
Advertisement
Add Comment
Please, Sign In to add comment