观察员太火了

时间:2013-08-11 10:59:36

标签: ember.js

我认为我有三个下拉菜单。在准备控制器时,我正在执行以下操作:

  1. 预先设置绑定属性(selectedCountry,selectedSubtype,selectedCity)(this.set('selectedCountry', 'DE');
  2. 设置属性之后,我为这些属性添加了观察者,以便每当用户更改选择时都可以重新配置下拉列表。我在初始化属性后要小心添加观察者,这样我就不会意外触发控制器。
  3. 但是,一旦呈现视图,观察者就会立即被触发。用户已执行无操作。我不明白这一点,但我想,在DOM中渲染视图时,ember会在下拉列表中设置绑定属性,这会导致观察者触发。那就是:

    1. Ember呈现视图
    2. 查看模板中的绑定到控制器属性
    3. 根据控制器属性
    4. 设置DOM元素属性
    5. 这会以某种方式引起观察者的射击?!?为什么!?!?
    6. 如果是这种情况,我能想到的唯一解决方案是在视图渲染后配置观察者didInsertElementViews,但我的问题与控制器有关。所以,我很困惑:控制器的工作是关心渲染问题吗?我不这么认为:那应该是观点的责任!但控制器显然受渲染顺序的影响!如何以干净的方式解决这个问题?

0 个答案:

没有答案