【问题标题】:Dynamic route code does nothing动态路由代码什么都不做
【发布时间】:2016-05-20 15:26:27
【问题描述】:

这是我更清楚的问题:

https://ember-twiddle.com/1454b9f4a64c197879d13f756401e561?openFiles=router.js%2C

我正在尝试制作动态路线。当我单击图片时,它应该会转到具有不同 URL 和不同内容的详细信息页面。就像,当我点击第一张图片时,它应该转到 localhost:4200/pic/1 或 localhost:4200/1。

我正在尝试使 URL 动态化,但到目前为止我做不到,当我单击图片时它什么也不做。我做错了什么?

另外,一开始我为每张图片创建了路线和模板,但如果数据更大,这将是不可能的。我该如何处理?

【问题讨论】:

    标签: javascript ember.js ember-cli


    【解决方案1】:

    我让它工作了:

    • 不使用 Ember-data....我不确定如何在 Ember Twiddle 中使用。我只是使用了一个简单的对象数组。
    • 我将模型传递给link-to中的路由

    这是模板在 pic 模型传递到 link-to 中的路由时的样子:

    {{outlet}}
    
    {{#each model as |pic|}}
      <div>{{#link-to "pic" pic}}
         <img src={{pic.image}} width="300">
      {{/link-to}}</div>
    {{/each}}
    

    在这里查看我的工作技巧:https://ember-twiddle.com/4b2b6467199622ae740259622c76ba9b

    【讨论】:

      【解决方案2】:

      在为动态路由使用 {{link-to}} 助手时,您还必须包含动态属性。

      {{#each model as |pic|}}
        <div>{{#link-to 'pic' pic}}<img src={{pic.image}} width="300">{{/link-to}}</div>
      {{/each}}{{outlet}}
      

      这里将图片模型传递给链接到帮助器。

      但如果您直接访问特定图片的页面,这将不起作用。

      还将您的模型/images.js 重命名为 pics.js。您还必须从 pics 模型中删除 id 属性,因为 Ember.js 不允许手动设置 id。

      【讨论】:

        【解决方案3】:

        你需要用link-tolike来传递参数

        {{#link-to 'pic' pics}}
        

        因为您是从params.id 访问图片路由中的id,但没有发送任何参数。

        twiddle

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-09-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多