2013-10-06 2 views
0

Может кто-нибудь помочь мне понять, почему this.get('property_1') всегда имеет значение null? И как я могу это исправить?Свойства моего вида не могут быть сохранены

App.SomeView = Em.View.extend({ 
    property_1: null, 

    didInsertElement: function() { 
     this.scheduleRefresh(); 
    }, 

    scheduleRefresh: function(){ 
     Ember.run.scheduleOnce('afterRender', this, this.refresh); 
    }.observes('controller.filter_params'), 

    refresh: function(){ 

     if (!this.get('property_1')) { 
      this.set('property_1', 'Hello'); 
     } 
    } 
}); 

Спасибо!

+0

Вы можете настроить jsbin? из вашего опубликованного кода это не очень ясно – intuitivepixel

+0

К сожалению, я не могу Это будет много кода. Но я уменьшил код на моем примере. При запуске 'controller.filter_params' обновленного метода' refresh'. Но между прогонами значение моего свойства не сохраняется –

ответ

1

Код, который у вас выше, работает просто отлично. Take a look at this jsfiddle. Возможно ли, что вы пытаетесь восстановить свойство вида property_1 с контроллера? Если это так, вы хотите определить свойство на контроллере и привязать его к представлению.

+0

Код на jsfiddle (http://jsfiddle.net/87hPk/) имеет ту же проблему (я добавил console.log, и он написал 'null'). Кажется, это непонимание с моей стороны. Что я должен сделать, чтобы получить значение из свойства в функцию 'refresh'? –

+0

Проблема в этом примере заключается в том, что вы регистрируете свойство до его установки. Если вы перемещаете трассировку ниже инструкции 'if', тогда она должна регистрировать желаемое значение. – ahmacleod

Смежные вопросы