在Ember视图中的willInsertElement之前运行函数

时间:2013-11-11 21:33:05

标签: ember.js

我想在渲染视图之前设置一些变量。具体来说,我想创建半随机类名和ID:

buttonBarId: ""
inputClass: ""

random: 0

willInsertElement: ->
  @set('random', Math.floor(Math.random() * (999999 - 100000 + 1)) + 100000)
  @set('buttonBarId', 'wmd-button-bar-' + @get('random'))
  @set('inputClass', 'wmd-input-' + @get('random'))

我希望willInsertElement可以做到这一点,但不幸的是,当它被调用时,视图已经被创建(它还没有被放置在DOM中)。有没有办法在创建视图之前设置这些变量?

1 个答案:

答案 0 :(得分:2)

如果您希望在视图创建之前(或实际上)运行它,而不是呈现,则应覆盖" init"这种观点的方法。 从视图类实例化视图时将调用它。 哦,不要忘记在这个init方法的某个地方运行this._super()。否则什么都行不通。