我们正在构建一个AngularJS应用程序。我现在正在构建一个公共表单,它是根据加载的URL进行自定义的。
例如
http://url.com.au/Registration.cshtml#?org=org1
看起来与略有不同
http://url.com.au/Registration.cshtml#?org=org2
当页面加载时,我想用GET加载一些信息http://url.com.au/api/Org/org1并且使用该响应来驱动一些UI元素。
起初,差异很小(徽标的URL,一些复选框中的值),但随着时间的推移,表单可能会越来越动态。
我应该遵循什么模式来支持:
- 简单的差异
- 在旅途中走得更远,会有一个更具活力的ui吗
对于一个简单的解决方案,我会将url更改保存在该路由的路由参数中。然后使用$routeParams访问它。这样你就可以很容易地更改你的基本GET url。
对于简单和动态UI,我会尽量减少ngInclude的使用(加载的文件更少=加载时间更长,而且它会创建一个新的范围,但并不总是理想的)。
对于简单的差异,我会将你的html结构尽可能地适应这两种布局。考虑使用ng-show/hide来触发基于从GET请求中检索到的变量的DOM更改。对于像图像这样的资产,GET请求可以返回图像的路径,然后您可以使用ngSrc来包含它。
在旅途中,您可能需要考虑使用嵌套路由。UI路由器是一个非常流行的解决方案。