如何使用URL參數與流星使用URL參數。如何使用Meteorjs
的URL可能看起來像這樣:http://my-meteor.example.com:3000?task_name=abcd1234
我想在流星應用MongoDB的查詢使用「TASK_NAME」(ABCD1234)。
例如。
Template.task_app.tasks = function() {
return Tasks.find({task_name: task_name});
};
謝謝。
如何使用URL參數與流星使用URL參數。如何使用Meteorjs
的URL可能看起來像這樣:http://my-meteor.example.com:3000?task_name=abcd1234
我想在流星應用MongoDB的查詢使用「TASK_NAME」(ABCD1234)。
例如。
Template.task_app.tasks = function() {
return Tasks.find({task_name: task_name});
};
謝謝。
你可能會想使用路由器來照顧路徑,並呈現一定的模板,不同的路徑。鐵路由器包是最好的一個。如果你沒有使用它,我會強烈推薦它。
一旦你使用的是鐵路由器,得到的查詢字符串和URL參數是由非常簡單。你可以看到文檔,這裏的部分:https://github.com/iron-meteor/iron-router/blob/devel/Guide.md#route-parameters
你給的路線會看起來像這樣的例子:
Router.map(function() {
this.route('home', {
path: '/',
template: 'task_app'
data: function() {
// the data function is an example where this.params is available
// we can access params using this.params
// see the below paths that would match this route
var params = this.params;
// we can access query string params using this.params.query
var queryStringParams = this.params.query;
// query params are added to the 'query' object on this.params.
// given a browser path of: '/?task_name=abcd1234
// this.params.query.task_name => 'abcd1234'
return Tasks.findOne({task_name: this.params.query.task_name});
}
});
});
這將創造條件,使用了「task_app」模板路線與任務名稱匹配的第一個任務的數據上下文。
您可以從模板助手或其他功能使用Router.current()來獲得當前的路線也訪問URL參數和其他路由信息。因此,例如在助手中,您可以使用Router.current().params.query.task_name
來獲取當前任務名稱。 Router.current()是一個反應性元素,因此如果它在反應計算中使用,則計算將在對路由進行任何更改時重新運行。
回答應該被接受:) – kylemclaren
現在如何在您的示例中加載模板的事件中訪問該參數。基地你的榜樣,如何訪問this.params.taskname在Template.home.events({}) – JCm
這個答案告訴我們如何訪問查詢參數在router.js文件。正如原始示例所述,它沒有解釋如何訪問Template函數中的查詢參數。 – JoeTidee
你碰巧使用鐵路由器嗎? –