我正在考虑将AngularJS用于即将推出的项目,但我很难理解视图/路由,特别是对于只有一个页面的应用程序。
该页面由表单或向导组成,但我希望在初始页面加载时加载所有数据(并存储在本地存储中)。这也适用于表单元素 - 不能向服务器发出附加请求,例如用于HTML模板(表单末尾的提交操作除外)。该应用程序将脱机使用,因此单个页面需要缓存所有必需的信息并处理UI转换而无需重新加载。
AngularJS是否适合此类应用?如果是这样,如何在没有其他请求的情况下完成更改视图所需的路由 - 可以在单个html页面中使用ng-view和routeProvider使用div吗?这是ui-routes的案例吗?
答案 0 :(得分:1)
我还没有实现这样的网站,但我相信这些是略微正交的问题。 AngularJS解决了使用业务逻辑(MVC)污染视图的问题,它还为您提供了创建单例服务的方法。此外,它允许您使用指令扩展HTML的词汇表,以定义复合DOM元素或行为。我认为所有这些元素都有助于创建一个通过模型和控制器松散耦合的用户界面,用于查看检索和存储在服务中的数据。
在某些浏览器中实现的本地存储API可以响应HTML5规范中的定义,使您能够在本地保存数据并确定何时发生在线脱机更改,这一点已在此页面上进行了深入介绍http://www.html5rocks.com/en/tutorials/offline/whats-offline/
我认为AngularJS是构建丰富的客户端体验并将模型与视图和控制器分离的理想候选者(因此为您提供了与应用程序本身分开保存所需的部分)。所有这些说我不知道Angular中内置的任何机制可以帮助简化这一过程,但是如果你对于localStorage和AngularJS谷歌有一点肯定有一些关于它和可用代码的讨论:angularjs and localStorage change event