2013-12-12 25 views
0

我對流星和鐵路路由器相當陌生,我試圖創建一個類似於'/ users/hippomoe/bookmarks/Kj6ecNk7DeW7PmmGA'的路線,其中hippomoe將是當前登錄的用戶,而Kj6ecNk7DeW7PmmGA將是id的書籤。一些我已經試過了事情添加車把助手將提供用戶名如何使用Iron Router定義包含當前用戶的路由?

bookmark: function() { 
    return { 
     _id: this._id, 
     user: Meteor.user().username 
    }; 
} 

,我也試着定義用戶:Meteor.user()的用戶名在RouteController定義範圍內的數據上下文。在這兩種情況下,我得到以下錯誤:「你稱爲Route.prototype.resolve與缺少參數。」用戶「在參數中找不到」

我試過找到一個例子,說明這種類型的路線假設將是常見的)。我在StackOverflow上看到的與此相關的其他問題是關於讓用戶與特定文檔關聯而不是當前登錄的用戶。

看來我錯過了一些簡單的東西。有人可以提供/指向我一個簡單的例子來說明如何實現這個目標?

回答

1

我很難理解爲什麼你需要這樣的路線。如果您已經知道登錄用戶的名稱,爲什麼您需要在路線中再次登錄?或者這是否意味着服務器端?在這種情況下,請出示您的路線。

否則,這是否正常工作:

Router.map(function() { 
    this.route('postShow', { 
    path: '/users/:ignoreme/bookmarks/_id', 
    data: function() { 
     var params = this.params; 
     var user = Meteor.user().username; 
     if (user == params.ignoreme) { 
      ... 
     } else { 
      return "something went wrong"; 
     } 
    } 
    }); 
}); 

這只是讓你想要的網址模式,但同樣,我不明白你爲什麼不直接使用URL /用戶/書籤或類似的,然後改變邏輯取決於Meteor.user()。

+0

路線「/用戶/ hippomoe /書籤/ _id」是我想類似的結構主意,因爲什麼計算器與他們'/ users/1766665/hippomoe'網址結構,點擊頂部的聲望/徽章圖標。我沒有太多關於URL設計的經驗,所以我可能不會使用這種類型的URL結構,我的問題可能不清楚。 – Derek

+1

關於URL設計,問題是您的書籤是否可以被他人查看。在StackOverflow中,有公開可見的配置文件頁面,因此它們需要一個URL來引用它們。用戶ID實際上是唯一需要的部分('/ users/1766665 /'),這是一個很好的設計,因爲它允許用戶在需要時更改用戶名。在你的應用程序中,如果用戶只能查看他們自己的信息,那麼你不需要在URL中的ID。 – alanning

+0

@alanning在url中使用id而不是用戶名提供了我沒有想過的靈活性。其他用戶將能夠在用戶書籤頁面上查看公共共享書籤。 – Derek

0

我是否正確指定了pathFor語法,我已經寫在我的問題

bookmark: function() { 
    return { 
     _id: this._id, 
     user: Meteor.user().username 
    }; 
} 

車把助手會工作。我的路徑應該看起來像這樣

{{pathFor 'saveBookmark' bookmark}} 

我已經不經意地離開了書籤!

0

我認爲你缺少一個「:」 _id之前,試試這個:

path: '/users/:ignoreme/bookmarks/:_id', 
+0

是的,我沒有寫好示例路線。我將特定的URL示例與參數化版本在我的路由中的顯示方式進行了混合。我改變了我的問題中的例子。我沒有忘記我的路線中的':'。但是我沒有在HTML中正確表達pathFor。 – Derek

相關問題