我一直在编写BackboneJS,并使用BackboneJS和AMD成功构建了大型项目。
我现在正在研究使用AngularJS并且已经实现了AMD的实现,并且已经构建了一些控制器和服务,因此到目前为止非常舒适。
唯一的问题是我们构建了许多需要针对不同地区进行本地化的应用程序。因此我已经成功配置了Angular Translate,它运行正常。
Angular Translate不支持的是创建本地化的url路由,这是我能够通过动态更新路由对象在BackboneJS中轻松实现的。
任何人都可以指出我正确的方向发表关于如何使用AngularJS执行此操作的文章或帖子。一直在谷歌搜索,但似乎找不到任何东西!
答案 0 :(得分:1)
因此,无论这是否是最适合您的解决方案,我将解释一下我们采用的方法,即使用 dumb Angular应用程序,需要在后端定义路由。因此,在运行时,我们的应用程序不知道用户所在的URL,我们所做的是以下内容:
$route.reload()
基本上重启(它实际上并没有重新启动应用程序,只是再次运行路由解析器)应用程序然后我们根据应用的功能定义路线,例如:http://foo.bar/product/:slug
。因此,如果用户在http://foo.bar/product/foobar
进入该应用程序,则运行时不知道foobar
是否存在。这使我们能够保持用户界面愚蠢并在后端定义路线;因此...
/product/:slug
,/page/:slug
等...... product
,page
等......控制器将默默地停在他们的init
$route.reload()
,这次将出厂标志设置为true product
,page
等控制器将再次被调用,但出厂标志为真,那么他们现在可以参考您加载的本地化数据希望它听起来并不痛苦,可以成为一个优雅的解决方案并且效果非常好。只要确保你有一个很好的礼貌装载机。