user147372
user147372

Reputation: 39

Angular .Value not working

New to Angular and I am trying to figure out Value. I am trying to save a value that I can later inject into my controller but for some reason, it breaks. If you run the plnkr sample, it will work, code gets to the controller. If you comment out line 68 and un-comment 67, it breaks the application. Line 41, I just set a value which is what I want to pass into my controller.

Why would this not work?

http://plnkr.co/edit/SnOm2r?p=options

Upvotes: 0

Views: 243

Answers (2)

Jeremy Likness
Jeremy Likness

Reputation: 7521

Your issue is a timing issue. The controller is created before the value is set so it doesn't have access.

If you create like this:

var mainApp = angular.module("Test", ["ui.router"]);
mainApp.value("AppConfig", 1.0); 

Then you can access it right away. If you have to set it asynchronously (i.e. you plan to set it as the result of a call) then the best way is probably to inject the $injector instead of the AppConfig. Then you can do:

if ($injector.has("AppConfig")) { value = $injector.get("AppConfig"); }

Even better may be to move that into a service with a promise that can return the value once it's fetched then cache it for subsequent calls.

Upvotes: 0

Snowburnt
Snowburnt

Reputation: 6922

There is no AppConfig...if you want to inject AppConfig it has to exist somewhere, a directive, a service, a factory, SOMETHING. You don't currently have one being loaded.

Upvotes: 1

Related Questions