【问题标题】:Ember.js Ways to Pass Dynamic SegmentEmber.js 传递动态段的方法
【发布时间】:2013-10-04 13:20:27
【问题描述】:

Ember.js 中是否有另一种方法可以传递不通过模板的路由的动态段?根据我的理解,我正在构建的应用程序在传统的 Ember 方式中使用动态段,它通过模板使用链接到。但是,我有一个记录列表,我在单个视图中通过数据表引入并插入这些记录。这些记录每个都有一个“编辑”它们的链接,该链接作为数据中的一个字段手动添加。例如,array[0] = record_id,array[1] = some name,array[2] = Edit Record。

this.resource('editrecord', { path: 'forms/:form_id/:record_id/editrecord'});

【问题讨论】:

    标签: javascript ember.js


    【解决方案1】:

    您可以在路由内使用transitionTo(routeName, segmentsValuesObject) 手动调用转换到路由:

    var formId = ...
    var recordId = ..
    this.transitionTo('editrecord', { form_id: formId, record_id: recordId })
    

    transitionToRoute(routeName, segmentsValuesObject) 在控制器内部

    var formId = ...
    var recordId = ..
    this.transitionToRoute('editrecord', { form_id: formId, record_id: recordId })
    

    路由的每个动态段,由segmentsValuesObject 中的键值表示。其中 key 是动态段的名称,value 是将在 url 中表示的当前值。

    这是一个使用此工作的示例http://jsbin.com/ucanam/1316

    希望对你有帮助

    【讨论】:

    • 当我尝试这样做时,我得到了错误:传递的上下文对象多于路由的动态段:editrecord
    • 对不起,我犯了一个错误。现在答案是正确的。请看一下
    • 谢谢马尔西奥。您的原始答案与 Ember.js 中的序列化主题结合使用效果很好 这在大多数情况下都有效,但我现在正在尝试处理发送给我的助手的正确上下文,因为您讨论的 segmentValuesObject 不再持有模型我需要生成一个表格。然而,这本身就是另一个问题。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 2013-03-19
    • 2021-04-28
    • 1970-01-01
    • 2020-05-01
    相关资源
    最近更新 更多