Невозможно получить доступ к свойству в представлении ember.js - PullRequest
1 голос
/ 23 февраля 2012

У меня есть вид карты Google, и я хочу, чтобы она открывала карту, чтобы я мог привязать ее к другому объекту. Проблема в том, что, поскольку я могу только создать экземпляр карты на didInsertElement (создание его непосредственно не будет работать, так как div еще не обработан), я не могу получить доступ к истинному значению карты (он всегда возвращает нуль ).

Вот мой код:

Places = Ember.Application.create();
Places.MapView = Ember.View.extend({
    tagName : 'div',    
    map : null,               
    didInsertElement : function() {
        this._super();
        this.set('map', new google.maps.Map($('#map').get(0), {
            mapTypeId: google.maps.MapTypeId.ROADMAP,
        center: new google.maps.LatLng(-33.8665433,151.1956316),
        zoom: 15
        }));
        this.get('map'); // Returns the value of the map OK
    }
});

Places.searchController = Ember.Object.create({
    mapBinding: 'Places.MapView.map' // Doesn't work
}

Вот шаблон:

<script type="text/x-handlebars">
{{#view Places.MapView id="map"}}{{/view}}          
</script>

Если я установлю любое другое свойство в MapView напрямую, у меня не возникнет проблем с привязкой к нему. Любые идеи о том, как решить эту проблему?

Ответы [ 2 ]

5 голосов
/ 25 февраля 2012

В моих контроллерах я обычно привязываюсь к объекту "модель", а не к объекту вида.

Возможно, попробуйте установить карту для другого объекта.

1 голос
/ 23 февраля 2012

В вашем searchController вы привязываетесь к свойству карты класса MapView .У класса нет свойства карты.Когда создается экземпляр класса и запускается didInsertElement, свойство карты добавляется в MapView экземпляр .Чтобы привязка работала, вам нужно привязать к свойству map экземпляра, а не к классу.

...