Javascript 局部AngularJS路线
我一直在编写BackboneJS,并使用BackboneJS和AMD成功构建了大型项目 我现在正在考虑使用AngularJS,并且已经在AMD上得到了一个实现,到目前为止,我已经构建了一些非常舒适的控制器和服务 唯一的问题是,我们构建了很多应用程序,这些应用程序需要针对不同的地区进行本地化。正因为如此,我已经成功地配置了角度平移,它工作得很好 Angular Translate不支持创建本地化url路由,这是我在BackboneJS中通过动态更新routes对象轻松实现的Javascript 局部AngularJS路线,javascript,angularjs,backbone.js,angular-routing,Javascript,Angularjs,Backbone.js,Angular Routing,我一直在编写BackboneJS,并使用BackboneJS和AMD成功构建了大型项目 我现在正在考虑使用AngularJS,并且已经在AMD上得到了一个实现,到目前为止,我已经构建了一些非常舒适的控制器和服务 唯一的问题是,我们构建了很多应用程序,这些应用程序需要针对不同的地区进行本地化。正因为如此,我已经成功地配置了角度平移,它工作得很好 Angular Translate不支持创建本地化url路由,这是我在BackboneJS中通过动态更新routes对象轻松实现的 有人能给我指出一篇文章
有人能给我指出一篇文章或帖子的正确方向吗?关于如何使用AngularJS实现这一点。一直在谷歌搜索,但似乎找不到任何东西 因此,无论这是否是您的最佳解决方案,我将解释我们在使用哑角应用程序时采用的一种方法,该应用程序需要在后端定义路由。因此,在运行时,我们的应用程序不知道用户访问的URL,我们所做的是:
- 调用定义我们的应用程序URL的服务
- 验证检索到的URL
- 调用
从本质上重新启动应用程序(它实际上并没有重新启动应用程序,只是再次运行路由解析器)$route.reload()
http://foo.bar/product/:slug
。因此,如果用户在http://foo.bar/product/foobar
运行时的应用程序不知道是否存在foobar
。这使我们能够保持UI的沉默,并在后端定义路由;因此
/product/:slug
,/page/:slug
,等等产品
,页面
等。。。控制器将在其init
$route.reload()
,这一次将工厂标志设置为true产品
,页面
等。。。控制器将再次被调用,但出厂标志将为true,然后它们现在可以引用加载的本地化数据希望这听起来不会很痛苦,这是一个优雅的解决方案,效果非常好。只需确保您有一个好的礼貌加载程序。您是在运行时进行本地化,还是构建本地化应用程序并单独部署?我通过从外部文件检索url和url格式在运行时进行本地化。因此,我办公室的用户可以在xml/json文件中以公认的格式进行本地化翻译。目前,我有一个检索json翻译内容的服务,然后我尝试在控制器中的$route.routes对象中动态设置这些路由,但URL不起作用…感谢您的回答。在从服务器获取内容时设置路由方面,我当前调用$route.routes['/'+route.url]={controller:“MainController”,templateUrl:'views/'+route.template};url和templateUrl是从服务器传回的值。这是对的吗?很抱歉反应太晚了。因此,我们的想法是为您的每一部分内容创建抽象路由,例如
/product/:productSlug
将指向您的产品控制器partial.html
,然后在产品控制器中使用$routeParams.productSlug
,对照加载的内容检查它,然后确定此项目是否存在。我们所做的是利用.resolve()
来检查具有相同概念的多个路由,例如获取一个base和id,并根据API或加载的配置进行检查。谢谢Ahmed。我仍然觉得我的脚有点棱角分明,但我会看看这个,看看我是否能找到工作!感谢这个Ahmed,更近了一步,尽管“产品”这个词在德语中可以是“produkt”,在西班牙语中可以是“produkt”,所以因为我必须设置顶级页面以将其映射到模板url,那么我认为我无法本地化url的第一部分是对的吗?好吧,这一切都取决于你怎么做。Product不必是一个单词,它可以是P或1,例如,您可以执行/P/:id/:Product/:slug,so/P/123/producto/chorizo