There are many ways to do what you are asking.
One way is to put the data on the root scope by injecting $rootScope or
using $scope.$root. That is frowned upon.
Another way is to explicitly work with the data on the parent scope like
this:
$scope.$parent.foo = 'bar';
That's also somewhat frowned upon.
Another way is for the parent to create an object that will hold data that
is accessed when the scope hierarchy is traversed. The controller for the
parent could do this:
$scope.holder = {};
The controllers for any descendant scopes could then do this:
$scope.holder.foo = 'bar';
and
var foo = $scope.holder.foo;
This is really just taking advantage of the dot that Eric Eslinger
suggested. It works when the descendant scopes don't have a property named
"holder" and traversing the hierarchy finds it in an ancestor scope.
Another way is to use a shared service that is injected into all the
controllers that need it.
On Wed, Sep 24, 2014 at 4:47 PM, mark goldin <[email protected]> wrote:
> And that is my problem. $scope is going out of scope when I move to child
> state. So, instead of trying to work around it how can I make it
> available everywhere?
>
> On Wednesday, September 24, 2014, Eric Eslinger <[email protected]>
> wrote:
>
>> yeah. That's because child scopes use prototype inheritance to reference
>> parent scope data.
>>
>> e
>>
>> On Wed, Sep 24, 2014 at 2:01 PM, mark goldin <[email protected]>
>> wrote:
>>
>>> Not sure I understand, So, instead of ng-model="eventDateFrom" I should
>>> say ng-model="data.eventDateFrom"?
>>>
>>> On Wed, Sep 24, 2014 at 3:40 PM, Eric Eslinger <[email protected]>
>>> wrote:
>>>
>>>> Also, try putting a dot in your model. As in, instead of looking at
>>>> $scope.value, do $scope.view.value
>>>>
>>>> Angular in the past at least, had issues with watching primitive types
>>>> on the scope.
>>>>
>>>> https://egghead.io/lessons/angularjs-the-dot
>>>>
>>>> On Wed, Sep 24, 2014 at 1:36 PM, Mark Volkmann <
>>>> [email protected]> wrote:
>>>>
>>>>> Add a console.log inside the callback function for the watch to verify
>>>>> whether that is getting triggered. It seems like the ng-model isn't
>>>>> getting
>>>>> configured correctly.
>>>>>
>>>>> If that doesn't help, I suggest creating a plunk that demonstrates the
>>>>> problem.
>>>>>
>>>>> On Wed, Sep 24, 2014 at 3:33 PM, mark goldin <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> Nope, does not look like it works. With my version it gets into
>>>>>> localData.add
>>>>>> when a view is loading. But with yours is not getting there at all.
>>>>>>
>>>>>> On Wed, Sep 24, 2014 at 3:16 PM, Mark Volkmann <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Do you have an input in your HTML with ng-model="eventDateFrom"?
>>>>>>> When you change the value of the input by typing a new value in the
>>>>>>> browser, does the watch get triggered?
>>>>>>> Oh, I think I see the problem. You need to pass a function to $watch
>>>>>>> like this:
>>>>>>>
>>>>>>> $scope.$watch('eventDateFrom', function (value) {
>>>>>>> localData.add('eventDateFrom', value);
>>>>>>> });
>>>>>>>
>>>>>>> On Wed, Sep 24, 2014 at 3:02 PM, mark goldin <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> $scope.eventDateFrom = getFormattedDate(date);
>>>>>>>> localData.add("eventDateFrom", $scope.eventDateFrom); // Will
>>>>>>>> properly store key and value.
>>>>>>>>
>>>>>>>> $scope.$watch("eventDateFrom", localData.add("eventDateFrom",
>>>>>>>> $scope.eventDateFrom)); // will not trigger localData.add
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Sep 24, 2014 at 2:58 PM, Mark Volkmann <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Show me your call to $scope.$watch.
>>>>>>>>>
>>>>>>>>> On Wed, Sep 24, 2014 at 2:54 PM, mark goldin <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> That is exactly what I am doing, but "equivalent of
>>>>>>>>>> setFavoriteNumber " is not getting called.
>>>>>>>>>>
>>>>>>>>>> On Wed, Sep 24, 2014 at 2:51 PM, Mark Volkmann <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>>> No. Set up the watch in your controller where you have access to
>>>>>>>>>>> $scope. Inject the service into that controller so you can call your
>>>>>>>>>>> equivalent of setFavoriteNumber in the watch callback function.
>>>>>>>>>>>
>>>>>>>>>>> On Wed, Sep 24, 2014 at 11:50 AM, mark goldin <
>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Where would I watch? Right in myDataSvc?
>>>>>>>>>>>>
>>>>>>>>>>>> On Wed, Sep 24, 2014 at 11:47 AM, Mark Volkmann <
>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> You could watch the scope property for changes and then pass
>>>>>>>>>>>>> the new value to the setFavoriteNumber method of the service.
>>>>>>>>>>>>> Something
>>>>>>>>>>>>> like this:
>>>>>>>>>>>>>
>>>>>>>>>>>>> $scope.$watch('myScopeProp', myDataSvc.setFavoriteNumber);
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Wed, Sep 24, 2014 at 11:43 AM, mark goldin <
>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> And that is what I kind of have. But my problem is that UI is
>>>>>>>>>>>>>> bound to $scope. When I select a new vlaue that value is not
>>>>>>>>>>>>>> getting into
>>>>>>>>>>>>>> myDataSvc.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Wed, Sep 24, 2014 at 11:41 AM, Mark Volkmann <
>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> One way to do that is to put the data in a service and
>>>>>>>>>>>>>>> inject that service everywhere you need it. For example,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> myModule.factory('myDataSvc', function () {
>>>>>>>>>>>>>>> var svc = {};
>>>>>>>>>>>>>>> var favoriteNumber;
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> svc.setFavoriteNumber = function (n) { favoriteNumber = n;
>>>>>>>>>>>>>>> };
>>>>>>>>>>>>>>> svc.getFavoriteNumber = function () { return
>>>>>>>>>>>>>>> favoriteNumber; };
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> return svc;
>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Wed, Sep 24, 2014 at 11:35 AM, mark goldin <
>>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I have UI that is bound to some $scope values. When I go
>>>>>>>>>>>>>>>> deeper into my application I need to use values entered in UI.
>>>>>>>>>>>>>>>> At some
>>>>>>>>>>>>>>>> point data that was put on $scope by UI is not available. How
>>>>>>>>>>>>>>>> can I share
>>>>>>>>>>>>>>>> data collected from UI across the app?
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Thanks
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>> 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.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>> R. Mark Volkmann
>>>>>>>>>>>>>>> Object Computing, Inc.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>> You received this message because you are subscribed to a
>>>>>>>>>>>>>>> topic in the Google Groups "AngularJS" group.
>>>>>>>>>>>>>>> To unsubscribe from this topic, visit
>>>>>>>>>>>>>>> https://groups.google.com/d/topic/angular/dkXHM4dufvw/unsubscribe
>>>>>>>>>>>>>>> .
>>>>>>>>>>>>>>> To unsubscribe from this group and all its topics, 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.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> R. Mark Volkmann
>>>>>>>>>>>>> Object Computing, Inc.
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> You received this message because you are subscribed to a
>>>>>>>>>>>>> topic in the Google Groups "AngularJS" group.
>>>>>>>>>>>>> To unsubscribe from this topic, visit
>>>>>>>>>>>>> https://groups.google.com/d/topic/angular/dkXHM4dufvw/unsubscribe
>>>>>>>>>>>>> .
>>>>>>>>>>>>> To unsubscribe from this group and all its topics, 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.
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> R. Mark Volkmann
>>>>>>>>>>> Object Computing, Inc.
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> You received this message because you are subscribed to a topic
>>>>>>>>>>> in the Google Groups "AngularJS" group.
>>>>>>>>>>> To unsubscribe from this topic, visit
>>>>>>>>>>> https://groups.google.com/d/topic/angular/dkXHM4dufvw/unsubscribe
>>>>>>>>>>> .
>>>>>>>>>>> To unsubscribe from this group and all its topics, 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.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> R. Mark Volkmann
>>>>>>>>> Object Computing, Inc.
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> You received this message because you are subscribed to a topic in
>>>>>>>>> the Google Groups "AngularJS" group.
>>>>>>>>> To unsubscribe from this topic, visit
>>>>>>>>> https://groups.google.com/d/topic/angular/dkXHM4dufvw/unsubscribe.
>>>>>>>>> To unsubscribe from this group and all its topics, 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.
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> R. Mark Volkmann
>>>>>>> Object Computing, Inc.
>>>>>>>
>>>>>>> --
>>>>>>> You received this message because you are subscribed to a topic in
>>>>>>> the Google Groups "AngularJS" group.
>>>>>>> To unsubscribe from this topic, visit
>>>>>>> https://groups.google.com/d/topic/angular/dkXHM4dufvw/unsubscribe.
>>>>>>> To unsubscribe from this group and all its topics, 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.
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> R. Mark Volkmann
>>>>> Object Computing, Inc.
>>>>>
>>>>> --
>>>>> 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 a topic in the
>>>> Google Groups "AngularJS" group.
>>>> To unsubscribe from this topic, visit
>>>> https://groups.google.com/d/topic/angular/dkXHM4dufvw/unsubscribe.
>>>> To unsubscribe from this group and all its topics, 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 a topic in the
>> Google Groups "AngularJS" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/angular/dkXHM4dufvw/unsubscribe.
>> To unsubscribe from this group and all its topics, 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.
>
--
R. Mark Volkmann
Object Computing, Inc.
--
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.