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

Ember.js 当使用queryParams对某些值回调三次时,Ember观察到,ember.js,query-string,Ember.js,Query String,我一直在玩ember.js中的新查询参数特性,非常喜欢它。我对余烬“观察”如何与之配合感到困惑。这可能与我的问题有关,但我认为我的问题也有点不同 在中,我可以使用下拉菜单更改图表类型,更改后的图表类型将显示在URL中。在我为URL的参数值键入其他文本(如xyz)之前,一切正常。根据我的代码,不正确的图表类型字符串应该被应用程序忽略。在控制台中,我看到'observes'函数运行了三次,并且查询参数值更改为'undefined'。你知道为什么会这样吗 布莱恩罪魁祸首: {{view Emb

我一直在玩ember.js中的新查询参数特性,非常喜欢它。我对余烬“观察”如何与之配合感到困惑。这可能与我的问题有关,但我认为我的问题也有点不同

在中,我可以使用下拉菜单更改图表类型,更改后的图表类型将显示在URL中。在我为URL的参数值键入其他文本(如xyz)之前,一切正常。根据我的代码,不正确的图表类型字符串应该被应用程序忽略。在控制台中,我看到'observes'函数运行了三次,并且查询参数值更改为'undefined'。你知道为什么会这样吗

布莱恩

罪魁祸首:

    {{view Ember.Select viewName="select"
                content=chartTypes
                prompt="Type:"
                value=selectedChartType}}
原因是它是双向绑定的。Ant对select的更改将反映您的控制器/模型,具体取决于您将其绑定到的控制器/模型

在所选案例中发生的情况:

您正在修改URL值:QWERTY 余烬尝试设置余烬。选择值为QWERTY,但失败QWERTY不在余烬中。选择 因为在余烬中找不到QWERTY。选择它将设置为未定义 对未定义的更改反映在控制器/URL上 URL由未定义的字符串组成,因此将未定义转换为未定义 最后一次迭代是在未定义的情况下运行的 因此,您有3次迭代:

因为找不到Ember.Select 因为未定义的类型不能放在URL中 最后,解决了一个问题 罪魁祸首:

    {{view Ember.Select viewName="select"
                content=chartTypes
                prompt="Type:"
                value=selectedChartType}}
原因是它是双向绑定的。Ant对select的更改将反映您的控制器/模型,具体取决于您将其绑定到的控制器/模型

在所选案例中发生的情况:

您正在修改URL值:QWERTY 余烬尝试设置余烬。选择值为QWERTY,但失败QWERTY不在余烬中。选择 因为在余烬中找不到QWERTY。选择它将设置为未定义 对未定义的更改反映在控制器/URL上 URL由未定义的字符串组成,因此将未定义转换为未定义 最后一次迭代是在未定义的情况下运行的 因此,您有3次迭代:

因为找不到Ember.Select 因为未定义的类型不能放在URL中 最后,解决了一个问题
谢谢这很有道理。这很有道理,整个上午都让我发疯。有好的解决办法吗?是否有一个余烬问题会讨论这个问题?对于那些通过google找到这个问题的人,您可以通过使用ember.run.scheduleOnce来解决这个问题,以便对值绑定属性应用任何更新,这些属性也是afterRender队列中的查询参数。另一个解决方案是省略提示绑定,并手动将其作为选项添加,并将其值设置为默认值谢谢!这很有道理。这很有道理,整个上午都让我发疯。有好的解决办法吗?是否有一个余烬问题会讨论这个问题?对于那些通过google找到这个问题的人,您可以通过使用ember.run.scheduleOnce来解决这个问题,以便对值绑定属性应用任何更新,这些属性也是afterRender队列中的查询参数。另一种解决方案是省略提示绑定,并手动将其作为选项添加,并将其值设置为默认值