0

親コンポーネントには、次のものがあります。

.
.
.
recurringFunc: function(delay, index){
  .
  .
  .
  if (someFlag){
    Ember.run.later(_this, function() {
      _this.send('otherFunc',{index: index});
      _this.send('recurringFunc', delay, ++index);
    }, delay);
  }
},


otherFunc: function(somePara){
  .
  .
  .
}

親テンプレートには次のものがあります。

.
.
.
{{template-name someFlag=someFlag}}
.
.
.

次に、子コンポーネントには次のものがあります。

input: function(){
  this.set('someFlag', false);
  this.sendAction('otherFunc', {index: someVal});
}

アクションが子コンポーネントから起動されると、親の someFlag が正常に変更されます。Ember.run.laterただし、コードは、子から開始された otherFunc 呼び出しを実行する前に、親の最後の反復が実行されるのを待ちません。

Ember.run.later の最後の繰り返しの後に実行される otherFunc に依存する、省略した他のコードがあります。

子コンポーネントから親コンポーネント関数を呼び出し、呼び出された子関数が実行される前に Ember.run.later が終了していることを確認するにはどうすればよいですか?

4

1 に答える 1