Integrating dependencies within an Ember model

Looking to inject dependencies into my Ember models.

https://github.com/emberjs/ember.js/issues/3670 mentions that this feature is disabled. To enable MODEL_FACTORY_INJECTIONS, there is a guide at https://github.com/stefanpenner/ember-cli/blob/master/blueprint/app/app.js#L4. This should allow injecting dependencies into models, although I am facing difficulties in implementing it.

If the above solution doesn't work, are there alternative methods to inject a reference to a global singleton object app-wide into an Ember.Model without just adding it to the app's namespace (e.g. App.ImAGlobalconfig`)?

Here is the initializer code snippet where I'm trying to implement this:

App.initializer({
  name: 'preload',
  initialize: function(container/*, application*/) {
    App.deferReadiness();

    Ember.$.ajax({
      url: CONFIG.configURL,
      dataType: 'json',
      context: this
    }).done(
      function(json/*,status, request*/) {
       var appConfig;

        // ...

        container.register('app:config', appConfig, {instantiate: false});
        container.injection('controller', 'appConfig', 'app:config');
        container.injection('route', 'appConfig', 'app:config');
        container.injection('view', 'appConfig', 'app:config');
        container.injection('model', 'appConfig', 'app:config'); // Still facing issues with this!

        App.advanceReadiness();
      }
    ).fail(
      function(status, request, error) {
        console.log('Unable to load config with: ' + error);
      }
    );
  }
});

Any help or opinions on this matter would be greatly appreciated. Thank you.

Answer №1

Utilizing model injections has been proven effective:

Ember.MODEL_FACTORY_INJECTIONS = true;    
App = Ember.Application.create();

App.initializer({
  name: 'model-injection',

  initialize: function(container, application) {

    var configuration = {version: '1'};
    container.register('app:config', configuration, {instantiate: false});


    container.injection('model', 'cfg', 'app:config');
    App.advanceReadiness();
  }
});

App.deferReadiness();

Live demo here

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Leveraging *ngFor to extract HTML content from ion-label

I've encountered an issue while using *ngFor in my HTML like this: <ion-slides #slides [options]="slideOpts"> <ion-slide class="numbers-wrapper" *ngFor="let questionNumber of numbers" (click)="clickQue ...

How to Generate an Array of JSON Objects in JavaScript on a Razor Page using a Custom ViewModel in MVC?

Attempting to populate the array within my script for future charting with D3.JS, I came across some issues. Following advice from this post, I used a specific syntax that unfortunately resulted in an error stating "Uncaught ReferenceError: WebSite is not ...

Dependency of multiple objects in Webgl three.js

I'm struggling with object dependencies and need help. I want to create a setup where one object is dependent on two other objects. Essentially, when I modify the position of one parent object (like changing the y-Position), the dependent object (chil ...

Utilizing AJAX response to update the current URL in a Spring MVC application - A step-by-step guide

In my ongoing project using Spring MVC, the homepage features two input fields of String type. However, the regNo field accepts numbers as input. If a user enters a regNo, it should be directed to a specific method in the controller. On the other hand, if ...

Tips for inserting the <a> HTML tag into a JSON array object

I am relatively new to creating array objects and I am unsure on how to add a link within a <a> tag in a JSON file. Here is the JSON object code: powerUpList: [ { id: 8, name: 'Automate your API column type ', description: & ...

Substitute a JSONP API call using $.ajax() with a direct server-to-server API call

My javascript application utilizes an ajax function that has the following structure: $.ajax({ url: apiURL, dataType: 'jsonp', success: function(data) { if (data.ok) { //perform actions }}}); Everything was working perfectly until I ...

"Mastering the art of event delegation: A guide to effectively engaging with various

I have data that is generated dynamically, as shown in the snippet below: const resultsDiv = document.getElementById("results"); const getList = document.getElementById("example"); document.querySelector(".container").addEventListener("click", function ...

JQuery Slideshow Automation

I have created a slideshow using Javascript and JQuery for my webpage. However, I am encountering an issue where only one of the slideshows cycles through all the pictures and then starts over, while the second one ends after cycling once. Can someone as ...

Listener function triggered following its deletion on IE11

While developing a component that listens for clicks on the entire document, I encountered an issue with IE11. To demonstrate this problem, I created a few simple components. class App extends React.Component { constructor(props) { super(props); ...

Node.JS has deceived us with its false promises of `import` support

Could it be that I am making a mistake? I have been eagerly awaiting the experimental ES6 module loader in Node.JS since version 10. This feature is crucial for me to seamlessly use the same code in both the browser and node environments. This is how I w ...

Listener for 'timeupdate' event on video doesn't retain values

My html5 video event listener is designed to pause the video at a specific time while the user participates in a quiz. The first 'lesson' works fine, and the second video also appears to add the listener with the correct pause time. However, when ...

Tips for identifying and swapping values/parameters in a URL during redirect

To provide more clarity on my inquiry, I will outline the details below: There are three links: Link A, Link B, and Link C Link A: {c_val} Link B: {id} Link C: In the database, there is a value adgaf7g6adf6gadfg8a86fgs9f6g The main focus here is when ...

Angularjs directive: independent scope and encapsulated elements

Why aren't the contained/child elements rendering when using an isolated scope? I suspect that the parent is not rendered yet. I tried adding a $timeout, but still no luck. If I remove the isolated scope by commenting out scope: {}, it works. How c ...

Integrating new information into an existing JSON file using React Native

Currently, I am attempting to input new data into an existing JSON file using text input. In my project using React Native, I have a JSON file named PartyInfo.json where certain data is stored. The goal is to have this data passed from a form and saved in ...

Issues encountered when using PUT requests in a react.js application

I've encountered an issue with a PUT request where, after editing one field and saving, all other values except the edited one become null. It seems to be related to the onChange() function, but I'm not entirely sure. Below is all the relevant co ...

Elevate sublevel vue component

I am facing an issue with a nested and reused vue component. I am attempting to use v-show to display a part of the component (icons) when its outer parent is hovered. In order to achieve this, I am passing the parent and child index as props. However, I ...

What could be causing the read-only error in my presentation?

My website has always had a small slider that worked perfectly, but now an error message keeps popping up: Error: "myIndex" is read-only This is the JavaScript code in question: const myIndex = 0; carousel(); function carousel() { let i; const x = ...

Can someone explain the integration of socket.io and express in a simple way?

I am encountering an issue with socket.io emit and express. My goal is to emit data for a web game, specifically to send players data to a specific lobby. For instance, if I create a lobby at the following link: localhost:8000/test/lobbyName, I want to emi ...

What could be causing Jquery to alter data while making an ajax Post request?

My situation involves an object that has the following structure: var data = { "to" : "<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="83f0eceee6ecede6c3e2e1e0ade0ecee">[email protected]</a>", "attachment" : [ ...

WebDriverError: The preference value for network.http.phishy-userpass-length in Firefox is not valid: exceeds maximum allowed length

Attempting to initiate a new test case using gecko driver (v0.15) with a specific Firefox profile in Protractor 5.1.1. I created the profile based on this guidance: Set firefox profile protractor Upon starting the execution through the protractor configur ...