2015-10-13 8 views
0

У меня есть компонент priority-selector который выглядит следующим образом ...Свойство в компоненте Ember не распространяющиеся на свой родительский контроллер

export default Ember.Component.extend({ 
    priority: 'low', 
    didInsertElement: function() { 
     this.$('[data-toggle="tooltip"]').tooltip(); 
    }, 
    actions: { 
     click: function(priority) { 
      this.set('priority', priority); 
      this.$('.btn-primary').removeClass('btn-primary'); 
      this.$('.btn-for-' + priority).addClass('btn-primary'); 
     } 
    } 
}); 

код шаблона ...

<div class="pull-right btn-group" role="group"> 
    <div type="button" class="btn btn-default btn-for-low" {{action 'click' 'low'}}>LOW</div> 

    <div type="button" class="btn btn-default btn-for-medium" {{action 'click' 'medium'}}>MEDIUM</div> 

    <div type="button" class="btn btn-default btn-for-high" {{action 'click' 'high'}}>HIGH</div> 
</div> 

Я использую этот компонент в шаблоне, подобный этому ...

<div class='col-sm-3'> 
    {{priority-selector priority=priority_gender}} 
</div> 

И я указал его в соответствии Мюллер ...

export default Ember.Controller.extend({ 
    ... 
    priority_gender: 'low' 
    ... 
}) 

Но собственность в контроллере никогда не меняется, когда я взаимодействовать с компонентом, я могу заметить, что это так, глядя в Ember инспекторе.

+0

Работает ли обработчик кликов (проверьте, установив там точку останова)? Не можете ли вы изменить значение свойства priority_gender на значение, не равное значению по умолчанию для компонента? Что вы видите тогда? – Microfed

+0

Я добавил точку останова, и она достигла этого кода, так что обработчик кликов работает. И когда я изменяю значение по умолчанию в компоненте, оно все еще использует один набор в контроллере. – saralk

+0

И какой аргумент получает обработчик кликов в вашем тесте? – Microfed

ответ

0

Your code is working.

Итак, убедитесь, чтобы указать priority_gender в правом контроллера для шаблона, который вы используете priority-selector компонент.