gpt4 book ai didi

javascript - 本地化的 AngularJS 路由

转载 作者:行者123 更新时间:2023-11-30 05:32:06 25 4
gpt4 key购买 nike

我一直在编写 BackboneJS 代码,并使用 BackboneJS 和 AMD 成功构建了大型项目。

我现在正在考虑使用 AngularJS,并且已经通过 AMD 实现了一个实现,并且已经构建了一些到目前为止非常舒适的 Controller 和服务。

唯一的问题是我们构建了大量需要针对不同地区进行本地化的应用程序。因此,我已经成功配置了 Angular Translate,它工作正常。

Angular Translate 不支持创建本地化 url 路由,这是我能够通过动态更新路由对象在 BackboneJS 中轻松实现的。

任何人都可以为我指明正确的方向以撰写有关如何使用 AngularJS 执行此操作的文章或帖子。一直在通过 Google 搜索,但似乎找不到任何东西!

最佳答案

因此,无论这是否是最适合您的解决方案,我都将解释我们在拥有一个需要在后端定义路由的愚蠢 Angular 应用程序时所采用的方法。因此在运行时,用户进入的 URL 对我们的应用来说是未知的,我们要做的是:

  • 调用定义我们应用 URL 的服务
  • 验证检索到的 URL
  • 调用 $route.reload() 本质上重启(它实际上并没有重启应用程序,只是再次运行路由解析器)应用程序

然后我们根据应用程序的功能定义路由,例如:http://foo.bar/product/:slug。因此,如果用户访问 http://foo.bar/product/foobar,应用程序在运行时不知道 foobar 是否存在。这让我们可以让 UI 保持哑巴状态,并在后端定义路由;因此……

  1. 在您的路由配置中设置基本路由,例如 /product/:slug/page/:slug 等...
  2. 创建一个工厂来保存一个 bool 变量,该变量表示应用程序是否已加载本地化数据;如果它是 false 那么你的 product, page, etc...
  3. 在你的基础 Controller 中加载你的本地化数据,验证它,等等......一旦你满意,你然后运行 ​​$route.reload() 并且这次将工厂标志设置为 true
  4. 您的产品页面等... Controller 将再次被调用,但工厂标志将为真,然后它们现在可以引用您加载的本地化数据
  5. 利润

希望这听起来不会很痛苦,它可以是一个优雅的解决方案并且效果很好。只要确保你有一个很好的礼貌加载程序。

关于javascript - 本地化的 AngularJS 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26298119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com