【问题标题】:Ember.js how to update link-to helper URL when it's model properties change?Ember.js 如何在模型属性更改时更新链接到帮助程序 URL?
【发布时间】:2024-01-17 09:54:01
【问题描述】:

我想在模型属性更改时动态更新我的“链接到”URL。 在这里,我创建了 jsbin 来说明我的问题。 http://jsbin.com/

当我单击“随机”按钮时 - App.testModel 编号属性发生变化,但“链接”按钮中的 URL 没有更新。

更新

为模型添加了一个属性。 http://jsbin.com/ofONeQ/25/edit

【问题讨论】:

    标签: javascript ember.js helper


    【解决方案1】:

    link-to helper 仅监视发送的模型本身是否发生变化(不是模型上的属性)。

    话虽如此,模型仅在构建链接并转换到 url 时才被序列化。因此,即使下面的链接没有更新,当您转换 url 时,它也是正确的。

    您也可以发送 id 而不是模型,它会更新(因为它正在监视该值,并且该值正在发生变化)。

    http://jsbin.com/ofONeQ/23/edit

    【讨论】:

    • 哦!谢谢,但我忘了添加其他属性。例如。模型包含多个属性,但只有一个更改 - 在我的示例中为“数字”。见jsbin.com/ofONeQ/25/edit
    【解决方案2】:

    可能的解决方案是使用 - query parameters [实验功能] - jsbin with solution

    <button>{{#link-to 'test' testModel (query-params number=testModel.number)}}Link{{/link-to}}</button>
    

    这会在 URL 中的“数字”查询参数之间建立一个绑定

    注意: 仅适用于 ember.js 1.4.0-beta.3 和 handlebars.js 1.3.0,也请确保设置:

     ENV = {FEATURES: {'query-params-new': true}};
    

    ember 加载之前

    【讨论】: