Hi,

I think you're right about the copy by value vs copy by reference. It makes
things much more clear for me.

Thank you!

/Marc


On Mon, Feb 3, 2014 at 11:17 PM, Francesco Rizzi
<[email protected]>wrote:

> I think it's a "copy by val vs copy by ref" scenario...
>
> Here's what I did: http://plnkr.co/edit/ARcahWOlznAQTEEh82HD?p=preview
> I added a couple of blocks in index.html to see more details
> ($routeParams, $routeParams.bookId, bookId and $bookId with and without the
> main. prefix
> Also, in script.js, within MainCntl, I added this.$bookId
> I'm not sure if any of these are the lines that troubled you to begin with.
>
> One possibly surprising aspect is that the MainCtrl is not re-run when you
> go from one "page" to the other.
> In fact, angular routing refreshes only the block of HTML marked as the
> view (<div ng-view class="view-animate"></div> in this case),
> and the blocks showing the output values are all outside of that container
> (but within the one using MainCntl as controller: <div
> ng-controller="MainCntl as main">)
>
> So, maybe the question should be why do we see some of these values being
> updated?
> The line in scripts.js (MainCntl): this.$routeParams = $routeParams
> makes this.$routeParams as a pointer to the $routeParams object that
> angular updates when we click onto a book/chapter link
>
> While: this.bookId = $routeParams.bookId;
> makes a value copy (the current value of $routeParams.bookId is copied and
> stored into this.bookId)
>
> So, if our HTML template has a binding ref to the variable in the former
> case (this.$routeParams), the angular 2-way binding will tell us when it is
> updated.
> That's true in the latter case as well, but because we grabbed a copy of
> the $routeParams.bookId value when running through MainCntl the first time,
> we are not being told when $routeParams is updated through successive
> clicks/navigation
>
> Why the difference? If I'm not mistaken the answer would come from
> JavaScript rather than angular knowledge.
>
> I know, someone will correct me if I'm wrong, but at least they'll
> enlighten me too!
> HTH,
> F
>
>
> On Monday, February 3, 2014 3:01:49 PM UTC-5, Marc Dirix wrote:
>
>> Ok here is a plunker: http://plnkr.co/edit/yoN9nMiX5cHSr8SHOFu2?p=preview
>>
>> I've just edited the ngView example (http://docs.angularjs.org/
>> api/ngRoute.directive:ngView), since it doesn't use $scope, I didn't add
>> it.
>>
>> /Marc
>>
>>
>> On Mon, Feb 3, 2014 at 7:56 PM, Francesco Rizzi <[email protected]>wrote:
>>
>>> I've had no trouble picking up a route parameter (as
>>> $routeParams.bookId), setting a scope property to that value, and
>>> displaying that value in the template/view (via binding).
>>> I'm a bit surprised by your use of this.$bookId (instead of the more
>>> canonical $scope.bookId), and inclusion of "main" in your {{main.$bookId}},
>>> but maybe I'm missing something.
>>> Do you have a quick plunker to show the issue?
>>> HTH,
>>> F
>>>
>>>
>>> On Sunday, February 2, 2014 5:17:48 PM UTC-5, Marc Dirix wrote:
>>>>
>>>> Hello,
>>>>
>>>> I've been trying some things with the ngView example, and am a bit
>>>> curious why this doesn't work as I expected.
>>>>
>>>> Why can I do in a the MainCtrl:
>>>>
>>>>   this.$routeParams = $routeParams;
>>>>
>>>> and then in the output say:
>>>>
>>>> {{main.$routeParams.bookId}}
>>>>
>>>> But am I not allowed to do in MainCtrl:
>>>>
>>>> this.$bookId = $routeParams.bookId
>>>>
>>>> {{main.$bookId}} returns blank.
>>>>
>>>> Is there a way around this?
>>>>
>>>> Best regards,
>>>>
>>>> Marc Dirix
>>>>
>>>  --
>>> 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/9Vl2wb0RR5s/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/groups/opt_out.
>>>
>>
>>
>>
>> --
>> Marc Dirix Computers
>> Schmeddingstraat 24
>> 6361AZ Nuth
>>
>  --
> 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/9Vl2wb0RR5s/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/groups/opt_out.
>



-- 
Marc Dirix Computers
Schmeddingstraat 24
6361AZ Nuth

-- 
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/groups/opt_out.

Reply via email to