我想在組件可以出現基於一組結果從服務器返回的提示添加到一個按鈕後。 (即刪除,編輯等操作按鈕)如何觸發元素特徵呈現燼-CLI
我創建了一個「搜索」組件,呈現到應用程序中,當單擊搜索按鈕時,服務器可能會返回一些行到相同的搜索組件模板。
因此,例如:
我的應用程序內/莢/實際數據/ template.hbs
包含:
…
{{#if results}}
<div class="row">
<div class="col-sm-3"><b>Factual ID</b></div>
<div class="col-sm-2"><b>Name</b></div>
<div class="col-sm-2"><b>Town</b></div>
<div class="col-sm-2"><b>Post Code</b></div>
<div class="col-sm-2"><b>Actions</b></div>
</div>
{{/if}}
{{#each result in results}}
<div class="row">
<div class="col-sm-3">{{result.factual_id}}</div>
<div class="col-sm-2">{{result.name}}</div>
<div class="col-sm-2">{{result.locality}}</div>
<div class="col-sm-2">{{result.postcode}}</div>
<div class="col-sm-2">
<button {{action "clearFromFactual" result.factual_id}} class="btn btn-danger btn-cons tip" type="button" data-toggle="tooltip" class="btn btn-white tip" type="button" data-original-title="Empty this Row<br> on Factual" ><i class="fa fa-check"></i></button>
</div>
</div>
{{/each}}
…
但是我不能讓工具提示代碼的功能,由於一個元素插入檢測/定時問題。 在組件
My-app/pods/factsual-data/component.js 包含:
...
didInsertElement : function(){
console.log("COMPONENT: didInsertElement");
Ember.run.scheduleOnce('afterRender', this, this.afterRenderEvent);
this.enableToolTips();
},enableToolTips: function() {
var $el = Ember.$('.tip');
console.log("TOOLTIP:", $el);
if($el.length > 0) {
$el.tooltip({
html:true,
delay: { show: 250, hide: 750 }
});
}
}
...
但是似乎didInsertElement當組件第一次呈現在只運行,有被稱爲在DOM每次的東西是一個組件內換了不同的功能?
我曾嘗試使用觀察:即
…
enableToolTips: function() {
var $el = Ember.$('.tip');
console.log("TOOLTIP:", $el);
if($el.length > 0) {
$el.tooltip({
html:true,
delay: { show: 250, hide: 750 }
});
}
}.observes('results')
…
當結果變量改變之前,但內容實際呈現它仍然是引發這確實觸發。我假定這是因爲我手動在控制檯灰燼運行。$(「尖」)。提示(顯示該按鈕後),(),則提示工作正常。
在這個問題上的任何指針?
這個選項對我來說非常合適 - 謝謝。 – 2015-02-10 10:55:48
這插入在哪裏?在一個控制器或組件? – 2016-02-29 23:27:49