1

我对指向自身的链接有问题。实际问题出在具有带有一组链接的侧边栏的应用程序中。第一次单击链接时,模型和视图会正确加载和显示。然而,在第二次单击时,视图和/或模型消失了。

我在这个jsfiddle中浓缩了这个问题。索引路线显示链接列表,当单击其中一个链接时,它将显示详细信息。在详细信息页面中,我有一个指向自身的链接,但是当我单击它时,模型不显示。

详细信息模板显示内容很好,但请注意 {{firstName}} 或 {{lastName}}

<script type="text/x-handlebars" data-template-name="item">
  <h2>Item Content:</h2>
  {{#linkTo "item" id}}Reload me{{/linkTo}}
  {{content}}
  <ul>
     <li>{{firstName}} {{lastName}}</li>
  </ul>
</script>

我认为这个问题类似于Ember.js - linkTo error on second call

更新样本

这是一个新示例其中 {{linkTo}} 项目位于顶级应用程序模板中

<script type="text/x-handlebars" data-template-name="application">
    {{#linkTo "test" 0}}Test 0{{/linkTo}}
    {{outlet}}
</script>

使用动作遵循@intuitivepixel 解决方案给了我相同的结果

<script type="text/x-handlebars" data-template-name="application">
    <a href="#" {{action reloadMe "test" 0}}>Test 0</a>
    {{outlet}}
</script>
4

1 回答 1

0

并非所有事情都可以使用{{linkTo}}助手完成,IMO 对于这种功能(如重新加载),您应该使用{{action}}助手。

首先定义在调用时为您执行路由的操作:

App.TestRoute = Ember.Route.extend({
  events: {
    reloadMe: function(route, content) {
      this.transitionTo(route, content);
    }
  },
  serialize: function(model) {
    return {id: model.id};
  }   
});

然后在您的模板中:

<a href="#" {{action reloadMe "test" content}}>Reload me</a>

在这里查看如何实现它:http: //jsfiddle.net/FSd6H/4/

希望能帮助到你。

于 2013-08-13T20:20:05.200 回答