Angular.js:模板和视图之间的数据处理

时间:2014-10-21 17:48:04

标签: javascript angularjs

我试图掌握与下一个问题相关的主要原则:

  • 模板
  • 数据处理
  • $ resource vs $ http

正如我所看到的,我想在我的应用中实现几个视图,这些视图共享几个html模板并且还共享一些数据。为了简化我的问题,我将描述一个几乎相同的场景。 enter image description here

你可以看到有2个视图(虽然会有更多!)谁使用3个html标记,而其中一个在两个视图中共享(GeneralInfo)。此外,两个视图共享通常在使用视图控制器之一时创建的数据。

  1. 应该使用什么角度原则来确保在改变路线时我可以保持我的数据在视图之间共享。
    • 我应该使用全局变量app.value(' myVal',..)吗?
    • 我应该像服务一样将它传递给我的所有控制器吗?
  2. 从技术上讲,我应该如何在两个视图中实现相同的html?你能举例吗?
    • 使用它的标记视图如何包含2个模板以及渲染方式和时间?
  3. $ resource和$ http之间的差异以及何时使用每个shouold?

1 个答案:

答案 0 :(得分:0)

1)应该使用服务在控制器之间共享数据。从技术上讲,你可以在$ rootScope上附加值,它可以在控制器上看到,但是这被认为是不好的形式,可能会导致以后的问题(比如使用全局变量),如果有人意外地附加了一个项目,那么肯定会产生意想不到的副作用相互冲突的价值)。

2)不确定你在这里问什么。您可以根据给定的路由/状态加载部分(使用ngRoute或ui-router)。两个不同的路由可以使用相同的generalInfo.html partial,但在各自的控制器中提取不同的数据。那是你要问的吗?

3)$ resource是$ http的抽象 - 如果你从REST服务器中提取数据,$ resource可能更合适,因为它抽象了一些必要的连线。但是,如果服务器与传统的REST原则相差太大,或者根本不是REST,您可能只想用$ http直接滚动自己的数据访问。当然,如果它是REST并且更复杂,也可以考虑restangular - 这是一个功能更丰富的抽象。