A year later - any updates on the sanctioned way to preserve expensive 
elements? I have a Google Maps that I want preserved (center, zoom etc.) 
when navigating among routes, and this seems like a basic enough feature of 
a routing package that it should already be implemented.

So far I've only found an add-on to ui-router, called ui-router-extras, 
which didn't work 
<https://github.com/christopherthielen/ui-router-extras/issues/86> out of 
the box.

On Wednesday, October 2, 2013 2:30:53 PM UTC-7, Ruaidhrí Devery wrote:
>
> Oh I see, I'll give it a try. If I can get something working how I want 
> I'll post up a fiddle
>
> Thanks for the help!
>
> R
>
>
> On 2 Oct 2013, at 12:12, Sebastien Vincent wrote:
>
> You don't recompile the template each time, you redraw. Compile is to 
> bind, not to draw. You can reuse dom element when you redraw, as long as it 
> reflect the data and it is properly unit tested. If you do thing in order, 
> it'll be easy to get thing working and only then optimize. 
>
> On Thursday, October 3, 2013 2:20:43 AM UTC+8, Ruaidhrí Devery wrote:
>>
>> ng-repeat triggers $animate#move 
>> <http://docs.angularjs.org/api/ng.$animate#move> to reposition DOM 
>> elements so as to "reuse the associated scope/element"
>>
>> I think that this is as much for usability as it is optimization. 
>> Re-compiling the template every time the order changes is a real issue for 
>> UI continuity*.
>>
>> What I'm trying to achieve is a similar. I'm hoping to maintain the 
>> continuity of a list of elements, only my list structure requires elements 
>> to be moved between root nodes not just within them.
>>
>> rur
>>
>> * and also for control requiring granular component state to be moved up 
>> the scope hierarchy.
>>
>>
>>
>>
>> On Tuesday, 1 October 2013 20:11:51 UTC-7, Sebastien Vincent wrote:
>>>
>>> I don't think ng-repeat moves DOM around, it keeps data and presentation 
>>> separated and redraw on change. 
>>>   
>>> The point of scope is to "maintain the component state for the duration 
>>> of execution". $compile allows you to create a new scope for your template 
>>> at the target. Then you need to move data between the old scope and new 
>>> scope and it will look like the data has moved. 
>>>
>>> On Wednesday, October 2, 2013 8:07:47 AM UTC+8, Ruaidhrí Devery wrote:
>>>>
>>>> Yea I remove and reinsert the element. I did try $compiling the element 
>>>> before reinserting, but as expected it clobbered the state within the 
>>>> include tag.
>>>>
>>>> I'm going to take a closer look at the ng-repeat implementation and see 
>>>> how it moves DOM nodes around. If I find anything useful I will post.
>>>>
>>>> rur
>>>>
>>>>
>>>>
>>>>
>>>> On Tuesday, 1 October 2013 15:35:44 UTC-7, OpenNota wrote:
>>>>>
>>>>> I lose Angular mouse event bindings (at least). 
>>>>>
>>>>>  
>>>>> Do you remove element from DOM and then reinsert it? If so, then you 
>>>>> probably need to $compile it after.
>>>>>
>>>>
>

-- 
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