2017-07-13 11 views
0

私は.reopenを私のファイルに使用してクラスを少し変更しましたが、同じファイルの計算されたプロパティを変更しようとしています。Emberが再オープンされたクラスからプロパティを設定する

私は簡単なプロパティから始めます。これはすべて私のカスタム日付picker.js内

export default Ember.Component.extend({ 
    ... 
    outputRange: "test", 
    ... 
}); 

powerCalendarRange.reopen({ 
    actions: { 
     select(day, calendar, e) { 
      let range = this._buildRange(day); 
      let { start, end } = range.moment; 
      this.set('outputRange', "set"); 
      if (start && end) { 
      let { minRange, maxRange } = this.get('publicAPI'); 
      let diff = Math.abs(end.diff(start)); 
      if (diff < minRange.as('ms') || maxRange && diff > maxRange.as('ms')) { 
       return; 
      } 
      } 
      let action = this.get('onSelect'); 
      if (action) { 
      action(range, calendar, e); 
      } 
     } 
    } 
}); 

あり、その後、もちろん、私はそうのようなHTML要素にoutputRangeを表示したい:

<input type="text" value="{{outputRange}}" /> 

私は」知っています何か間違っていると、私はthisと関係があると思います。何を調べるべきですか?

+0

'outputRange'を定義したコンポーネント名は何ですか? 。 'outputRange'を' powerCalendarRange'コンポーネントに渡していますか?その 'powerCalendarRange'は何ですか? – kumkanillam

+0

@kumkanillam、私が表示しているスクリプトは、私のコンポーネントの 'custom-date-picker.js'部分です。 'powerCalendarRange'は' ember-power-calendar'のNPMモジュールのインポートです。私は 'powerCalendarRange'に' outputRange'を渡しませんでした。私は私が必要と知っていなかった。値を再オープンされたクラスに渡してから戻す必要がありますか? – ntgCleaner

+0

だからどこで 'outputRange'を表示しようとしていますか?それはあなたの 'custom-date-picker.js'です。その場合、 'outputRange'を' powerCalendarRange'コンポーネントに渡す必要があります。 – kumkanillam

答えて

0

custom-date-pickerがあなたの成分であり、power-calendar-rangeが異なるコンポーネントで、コンポーネントは孤立している、あなたはcustom-date-pickerからpower-calendar-rangeoutputRangeプロパティを渡す必要があります。

なぜ再開しますか?私はreOpenなしであなたのユースケースを解決できると信じていますが、power-calendar-rangeコンポーネントを拡張することで可能です。

+0

申し訳ありませんが、これで問題が解決されない場合があります – kumkanillam

+0

ええ、そうではありません。変更時に値が正しく渡されていない – ntgCleaner

関連する問題