2017-02-14 39 views
0

У меня есть родительский компонент name- карты режимкак засавить дочерний компонент внутри другого компонента без контроллера уголька

**card-mode.js** 
import Ember from 'ember'; 

export default Ember.Component.extend({ 
    card: null, 
    previousPage: null, 
    nextPage: null, 
    init(){ 
     this._super(...arguments); 

     if(this.get('errand').selectedMeasure != null){ 
      this.setCard("page/card/measure-master-summary"); 
     } 
    }, 
    setCard(card){ 
     this.set('card', card); 
    }, 
    actions: { 
     setCard(name){ 
      this.setCard(name); 
     }, 
     next(name){ 
      console.log(name); 
      this.setCard(name); 
     }, 
     previous(name){ 
      console.log(name); 
      this.setCard(name); 

     }, 
    } 
}); 

**card-mode.hbs** 
<div> 
{{component card setCard=(action 'setCard') }} 
</div> 
<div> 
<a href="#" class="btn btn-primary padding-lr" onclick={{action "previous" previousPage}}>previous<i class="fa fa-arrow-circle-right"></i></a> 
<a href="#" class="btn btn-primary padding-lr npc" onclick={{action "next" nextPage}}>Next <i class="fa fa-arrow-circle-right"></i></a> 
</div> 

В этом компоненте режима карты я буду рендерингом компоненты посредством вызова метода setcard.

До этого он отлично работает.

Но теперь я должен отображать один и тот же дочерний компонент несколько раз в родительском компоненте.

Think child-page-child-page-2 - это два дочерних компонента, которые должны отображаться в родительском компоненте. child-page-1 и child-page-2 отлично отображаются, когда вы вызываете их, используя предыдущие и следующие действия.

, но при попытке вызова child-page-2 снова вызов снова не выполняется для функции init-child-page-2.

child-page-2.js 

export default Ember.Component.extend({ 

    errand: Ember.inject.service(), 
    selectedDimensionAnalysis: null, 
    analysisTable:null, 

    init(){ 
     this._super(...arguments); 
     this.parentView.set('nextPage','child-page-1'); 
     this.parentView.set('previousPage','child-page-2'); 

     // results that will be displayed - 
     //results will be varied everytime based on the number of times it is called 
    }, 
}); 

Мой вопрос:

, как я должен снова повторно вынести компонент ребенка. Я не использую никаких контроллеров и моделей, поскольку я их не требую.

ответ

0

Вы ошибаетесь, что контроллера нет. Если вы не определяете один Ember generates один для вас.

Если вы устанавливаете Ember инспектор вы можете увидеть, какие контроллеры присутствуют https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi?hl=en

enter image description here

Предложение:

Компонент может быть вынесено несколько раз, если его добавляют в файл руль HBS , Создайте новый компонент и передайте свойства, которые вы хотите использовать от родителя.

образец HBS

{{child-page 
     currentPage=3 
     property1='something' 
     property2='something' 
}}