我正在构建我的第一个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;
但是现在它什么都没有显示,我找不到什么。
答案 0 :(得分:1)
主要问题是在模板中使用quote_id
。在模板中,您告诉把手从为该模板提供的模型中获取属性quote_id
。
剖析与该路线相关联的模型,您会发现模型本身是quote_id
值,5
或7
等。适合您模板的模型会以{ 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>