我有一个'测试测试'包含2个功能的组件如下:
import Ember from 'ember';
export default Ember.Component.extend({
myfunction1: Ember.on('init', function() {
alert(123);
}),
myfunction2: Ember.on('init', function() {
alert(1234);
}),
});
在Application.hbs上我打电话
{{#test-test}}{{/test-test}}
当然结果将是2警报(123)和警报(1234)。
如果我希望它只启动myfunction1等1个函数并且不启动myfunction2,我该怎么办?
答案 0 :(得分:0)
我这样做:
//component/test-test.js
import Ember from 'ember';
export default Ember.Component.extend({
whatToDoOnInit: null,
initFunctions: Ember.on('init', function() {
switch(this.get('whatToDoOnInit')) {
case 1:
alert('123');
break;
//...and so on
}
}),
});
并称之为:
//template.hbs
{{#test-test whatToDoOnInit=1}}{{/test-test}}
当然这样你可以实现另一个逻辑:
export default Ember.Component.extend({
doOneThing: false,
doAnotherThing: true,
initFunctions: Ember.on('init', function() {
if(this.get('doOneThing')) {
alert('123');
}
//...
}),
});
//template.hbs
{{#test-test doOneThing=true doAnotherThing=false}}{{/test-test}}