No, you've got it wrong =) Those styles have nothing to do with local vs
global. They are just different ways of telling the injector what to
inject. The latter of which will not work with minified code, due to name
mangling.

I can't remember why "locals" came up, I think it was because I was
explaining how to use the $controller() api as an example. Totally
unrelated, though.

On Tue, Mar 10, 2015 at 5:40 PM, adam morris <[email protected]> wrote:

> *So to summarize... *
>
> // The example you provided:
>> angular.controller(“MyController”,
>>
> [“$scope”, “$http”, *  //local, not registered w/ injector?*
>>
> function($scope, $http) {  *// global, registered w/ injector, and mapped
>> to local?*
>>
>   // ...
>> }]);
>>
>
> On Tuesday, March 10, 2015 at 1:53:25 PM UTC-7, Caitlin Potter wrote:
>>
>> So, there are 2 kinds of things that can be injected into a function:
>>
>> - Things which are registered with the injector (eg, things you register
>> via angular.controller(“controllerName”, …))
>> - Local variables, which are not registered with the injector.
>>
>> You don’t need to worry about the distinction until you’re doing things
>> with the injector, but it really just means that locals allow you to inject
>> things which are not “registered” with the injector.
>>
>> On Mar 10, 2015, at 4:46 PM, adam morris <[email protected]> wrote:
>>
>> Caitlin, I get the gist of the third example. I looked online and found
>> that upon minification, "$scope & $http" are turned to something more
>> generic like "a & b" and those variables would lose their context, breaking
>> the code. So that adding "[“$scope”, “$http”..."  either prevents
>> minification (or minification factors in) specifically on those variables.
>>
>> I'm a little fuzzy on global vs local $scope.
>> Is the fact that '$scope' a literal make it a local variable?
>>
>> Thanks.
>>
>> On Tuesday, March 10, 2015 at 11:57:04 AM UTC-7, Caitlin Potter wrote:
>>>
>>> This is a way of interacting with the injector (one of several). The
>>> string literal containing ‘$scope’ tells the injector that the parameter at
>>> index 0 (first item in the array) should be ‘$scope’ from the injector.
>>> ‘$scope’ isn’t registered globally in the injector, it comes from locals
>>> (so, if you instantiate a controller via the $controller service, you can
>>> supply injector locals via the second parameter, `$controller(‘ctrlName’, {
>>> $scope: myScope });`.
>>>
>>> There are a few ways to use the injector:
>>>
>>> ```
>>> // One example:
>>> MyController.$inject = [‘$scope’, ‘$http’];
>>> function MyController($scope, $http) {
>>>   // ...
>>> }
>>> angular.controller(“MyController”, MyController);
>>>
>>> // The example you provided:
>>> angular.controller(“MyController”, [“$scope”, “$http”, function($scope,
>>> $http) {
>>>   // ...
>>> }]);
>>>
>>> // The third method is discouraged, because it requires parsing
>>> `function.toString()`, and this
>>> // does not work as expected when code is minified.
>>> angular.module(“MyController”, function($scope, $http) {
>>>   // ...
>>> });
>>> ```
>>>
>>> These rules apply to everything that the injector deals with, from
>>> directives to services to filters to controllers.
>>>
>>> If that didn’t clear things up, feel free to ask for clarification =)
>>>
>>> On Mar 10, 2015, at 2:44 PM, adam morris <[email protected]> wrote:
>>>
>>> Hi. I'm an angular newbie. I couldn't find an explanation of this part
>>> of a controller anywhere:
>>>
>>> controller('myController',
>>> [*'$scope'*,                   //mentioned first time - *what does this
>>> do?*
>>>      function*($scope)*  //mentioned second time - *how does this
>>> ($scope) relate to '$scope' above?*
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "AngularJS" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at http://groups.google.com/group/angular.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>>
>>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "AngularJS" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/angular.
>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>>  --
> You received this message because you are subscribed to the Google Groups
> "AngularJS" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/angular.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to