1

I have got an array with some default settings, this is multi-dimensional. I then over-ride these settings within an ajax call. All works fine apart from any multi-dimensional keys, due to the root key being replaced currently.

{
  "selectedFacetsToTop": true,
  "singleSelect": false,
  "layouts": {
    "root": {
      "folder": "Layouts",
      "view": "",
      "default": "Default"
    },
    "results": {
      "folder": "Results",
      "view": "",
      "default": "Default"
    }

This is how I over-ride the defaults:

const custom = await Axios.get('/custom-settings');
this.config = custom.data.config;

/**
 * Example Response:
 * {
 *    "layouts" => [
 *        "results" => [
 *          "view" => "Special"
 *        ]
 *    ]
 * }
 */

/**
 * Merge the default settings with custom settings.
 */
Object.assign(this.settings, custom.data.settings);

Does anyone know a way I can over-ride the defaults, so with the example response above, I would only update the "view" within "results", however at the moment the entire "layouts" is being replaced.

Martyn Ball
  • 4,679
  • 8
  • 56
  • 126

0 Answers0