我有困難得到一個語義UI位於的塊部件內部在灰燼JS工作(1.12.2)jQuery的下拉按鈕語義UI/jQuery的下拉按鈕(1.11.0 )。我認爲我理解了將jQuery綁定到Ember中的元素的運行循環問題,但在這種情況下,我認爲有些細微差別正在發生,我不知道。麻煩與灰燼使用塊部件JS
我有叫我的組件這樣的一個模板:
{{#sui-button-dropdown colour="black" icon="retweet" text="Change Status"}}
{{#each status in applicationStatuses}}
<div class="item">
<div class="ui {{status.colour}} label"></div>
{{status.description}}
</div>
{{/each}}
{{/sui-button-dropdown}}
我的部件js代碼如下:
import Ember from 'ember';
export default Ember.Component.extend({
didInsertElement: function() {
Ember.run.scheduleOnce('afterRender', this, function() {
this.$().dropdown({action: 'select'});
});
},
actions: {
changeStatus: function() {
this.$().dropdown('toggle');
}
}
});
而且我的組件.hbs的看法是:
<div class="ui {{colour}} labeled icon dropdown button" {{action: 'changeStatus'}}>
<input type="hidden" value="{{value}}" />
<i class="icon {{icon}}"></i>
<span class="text">{{text}}</span>
<div class="menu">
{{yield}}
</div>
</div>
的「applicationStatuses」結合經由余燼數據從API異步拉入,所以是一個承諾。我已經把jQuery的結合.dropdown()內的「didInsertElement」功能,以確保承諾已經返回列表已經呈現它也被安排在運行循環「AfterRender階段」的下一次迭代。
然而,當我點擊下拉按鈕沒有出現下拉列表。沒有錯誤,dropdown()函數肯定會在下拉按鈕元素上被調用,因爲我已經檢查過了。我懷疑我錯過了一些東西,dropdown()jQuery方法在返回「applicationStatuses」集合的AJAX調用之前綁定,這意味着該列表在運行時未被填充。
如果我把所有這一切都出了成分,並在父控制器創建所有/模板按鈕下拉作品,但組件去,所以我會很感激的任何幫助,任何人都可以提供的方式。
謝謝。
是你的「changeStatus」不會被調用? – Sushant