2012-03-30 14 views
1

In Version 0.9.3 von Ember.js verwenden, könnte ich so etwas tun:Ember.js 0.9.5 nicht aktualisiert, wenn View Helfer

Item = Ember.Object.Extend({ 
    title: 'A cool item', 
    subview: Ember.View.extend({ 
    templateName: 'views_items_show' 
    }) 
}); 

var item = Item.create(jsonData); 

var itemIndexView = Ember.View.extend({ 
    templateName: 'views_items_index', 
    item: item 
}); 

itemIndexView.appendTo('body'); 

Dann in meiner itemIndexView Ansicht Vorlage:

<div class="some-class"> 
    <p>{{item.title}}</p> 
    <div> 
    {{view item.subview}} 
    </div> 
</div> 
wenn ich

Dann aktualisieren itemIndexView:

itemIndexView.set('item', newItem); 

In Ember 0.9.3 {{view item.subview}} wird automatisch mit der neuen Ansicht aktualisiert. Dies funktioniert nicht in 0.9.5. Gibt es einen anderen Weg, dies jetzt zu tun?

Antwort

5

Sie sollten Ember.ContainerView verwenden, wenn Sie mit dynamischem Inhalt zu tun haben.

Hier ist ein funktionierendes Beispiel, aus dem Code Refactoring: http://jsfiddle.net/MikeAski/d6JD8/1/

+2

+1. Nur 2 Dinge, sehr kleine Dinge, die ich mit dem Code ändern/notieren würde, sollten Sie 'getPath' anstelle der 2 'back'-back' get'-Aufrufe und' Ember.run.later' anstelle von 'setTimeout' verwenden. –

+0

Sie sind eine erstaunliche Person. Danke Mike und Roy! – Calvin

+0

@RoyDaniels: nahm Bemerkungen in Betracht und aktualisierte das Beispiel. Vielen Dank! –

Verwandte Themen