当对某些值使用queryParams回调三次时,Ember会观察

时间:2014-08-09 00:34:06

标签: ember.js query-string

我一直在使用ember.js中的新查询参数功能,非常喜欢它。我对这个余'“观察”如何使用它感到困惑。它可能与this有关,但我认为我的问题也有所不同。

this jsbin中,我可以使用下拉菜单更改图表类型,更改的图表类型将显示在URL中。一切正常,直到我为URL的参数值键入其他文本,例如“xyz”。根据我的代码,应用程序应该忽略不正确的图表类型字符串。在控制台中,我看到'observes'函数运行三次,查询参数值更改为'undefined'。有任何线索可能会发生这种情况吗?

布赖恩

1 个答案:

答案 0 :(得分:4)

罪魁祸首:

    {{view Ember.Select viewName="select"
                content=chartTypes
                prompt="Type:"
                value=selectedChartType}}

原因是它是双向绑定。对选择的Ant更改将反映您的控制器/模型(取决于您将其绑定到哪个)。

此选定案例中发生了什么:

  1. 您正在修改网址(值:QWERTY
  2. Ember尝试将Ember.Select值设置为QWERTY,但失败(QWERTY不在Ember.Select中)
  3. 由于在Ember中找不到QWERTY。选择它设置为undefined
  4. 更改为undefined会反映在控制器/网址
  5. 网址由字符串组成,未定义,因此将undefine转换为"undefine"
  6. 上次迭代使用"undefined"
  7. 运行

    因此,你有3次迭代:

    1. 因为没有找到Ember.Select
    2. 因为未定义的类型无法放入URL
    3. 最后一个,解决了一个