2014-03-24 35 views
1

我正在構建我的第一個Ember應用程序,我試圖讓它通過並在視圖中顯示參數,從URL中抓取它...Ember.JS - 從URL返回和顯示參數

所以基本上,如果有人去的index.html#/報價/ 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> 

所以如果我去「example.com/index.html#/quote/3」
我只是想在視圖中顯示「TEST:3」,
如果我去「 example.com/index.html#/quote/10"
我想視圖中顯示‘TEST:10’

但現在它顯示什麼,我無法找到缺少了什麼。

回答

1

主要問題是在模板中使用quote_id。在模板內部,您正在告訴把手從該模板提供的模型中獲取屬性quote_id

解剖與路由相關的模型,你會看到,該模型本身就是quote_id值,57等,將適合您的模板的模型將{ quote_id: 5 }這樣灰燼/把手可以搜索屬性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> 
+0

太謝謝你了!像現在的魅力:) 出於好奇你爲什麼在quote_id中使用quote_id兩次:params.quote_id? – pashOCONNOR