如何在 UI-Router 中使用和映射别名字符串而不是 id

How to use and map alias string instead of id in UI-Router

通常我使用 ui-router 状态和 id 参数,如下所示:

/* route /news/{news_id} */

http://servername/#‌​/news/14

但我已经想像这样使用 alias string 而不是 id:

/* route /news/{news_title} */

http://servername/#‌​/news/braking-news-of-usa

如何在 angular 或 ui-路由器中将 news_title 映射到 news_id

我不认为这特定于 Angular,但您可以考虑以下方法。

  • 与标题一起附加带有一些分隔符的新闻 ID。例如breaking_news_of_usa_14。当有人点击 link 时,在 Javascript 中拆分新闻标题并检索 ID 以查询服务器 API。

  • 确保您拥有唯一的新闻标题(服务器端的开销 API 例如唯一索引、哈希等),而不是使用新闻 ID 进行查询,而是使用新闻标题进行查询以获取详情。

  • 像这样维护新闻 ID 和新闻标题 /{news_title/{news_id}。这样您就可以节省引入独特标题的开销。 (参考,检查 Whosebug URL 格式的问题详情。)