2015-08-28 3 views
1

Я хочу вызвать didInsertElement только на одном элементе, но не на других, у меня есть компонентный шаблон с несколькими элементами, но я просто хочу использовать его для определенного элемента.didInsertElement для только одного элемента EmberJs

Любая идея, как это сделать? Возможно ли, если да, хорошая практика или нет ... и компонент, имеющий несколько элементов, указывающих на другие компоненты, это хорошо?

+0

Имеет ли этот компонент идентификатор? Что-то вроде определенного идентификатора, определенного атрибута или, возможно, первого/последнего компонента в списке? – usernames

+0

Можете ли вы привести пример базового кода, описывающий то, что вы пытаетесь достичь? Возможно, это проблема дизайна, которая может быть решена по-разному. – QuantumLicht

ответ

2

Предполагая, что я правильно вас понимаю, и вы хотите вызвать didinsertelement на одном экземпляре компонента, но не на других экземплярах компонента.

С этим допущением самым простым подходом было бы передать некоторый параметр компоненту, который указывает, следует ли выполнять логику, обработанную в didinsertelement.

{{some-comp dologic='false'}} 

setup: Ember.on ('didInsertElement', function(){ 
    if (this.get ('dologic')) .... 
}) 
+0

Помните о логике, которую вы вводите здесь, потому что если вы установите какое-либо свойство компонента, это вызовет повтор. – locks

+0

Поскольку Глиммер ударил по улицам, реиндеринг стал смехотворно дешевым и практически без проблем. http://emberjs.com/blog/2015/06/12/ember-1-13-0-released.html – Kingpin2k