Ember.JS - 回归&从URL显示参数

时间:2014-03-24 21:11:05

标签: ember.js handlebars.js

我正在构建我的第一个Ember应用程序,并且我试图让它通过并在视图中显示一个参数,从URL中抓取它...

所以基本上如果有人去了index.html#/ quotes / 5
我希望视图显示" TEST:5"

App.js:

App.Router.map(function(){
  this.resource('quote', function(){
    this.resource('quoteNumber', {path: ':quote_id'});
  });
});

App.quoteNumberRoute = Ember.Route.extend({
    model: function(params){
        return(params.quote_id);
    }
});

HTML:

  <script type="text/x-handlebars" id="quote">
      Test: {{outlet}}
  </script>

  <script type="text/x-handlebars" id="quoteNumber">
      {{quote_id}}
  </script>

所以如果我去&#34; example.com/index.html#/quote/3"
我只想让视图显示&#34; TEST:3&#34;,
如果我去了&#34; example.com/index.html#/quote/10"
我希望视图显示&#34; TEST:10&#34;

但是现在它什么都没有显示,我找不到什么。

1 个答案:

答案 0 :(得分:1)

主要问题是在模板中使用quote_id。在模板中,您告诉把手从为该模板提供的模型中获取属性quote_id

剖析与该路线相关联的模型,您会发现模型本身是quote_id值,57等。适合您模板的模型会以{ quote_id: 5 }方式Ember / Handlebars可以在模型上搜索属性quote_id并绑定到该值。

以下是您尝试做的一个示例(请注意,我本可以返回params对象本身)。

http://emberjs.jsbin.com/OxIDiVU/309/edit

我还添加了一个方便的链接,但您可以输入任何网址并获得您想要的内容,http://emberjs.jsbin.com/OxIDiVU/309#/quote/123123

PS。您没有展示,也没有提及,但您还需要一个应用程序模板。这是您的应用程序的根目录,如果您打算在其中没有任何内容,您可以只放一个{{outlet}}

实施例

<script type="text/x-handlebars" data-template-name="application">
  {{outlet}}
</script>

或简称

<script type="text/x-handlebars">
  {{outlet}}
</script>