AngularJS - 使用嵌套控制器

时间:2015-11-10 00:40:48

标签: javascript angularjs angularjs-scope ngroute angularjs-ng-route

我有一个现有的AngularJS路由,其中​​来自API的数据使用来自PrimaryController的路由解析(myDependency)注入到页面控制器(ngRoute)中。我正在为此页面添加更多功能,我将其封装在具有ng-controller="SubController as subController"

的子控制器中

SubController主要在myDependency上运作,而PrimaryController也会对其进行操作。我可以想到三种方法将数据传递给SubController,我想知道是否有最佳实践。

  1. 将对象放在$scope上,并在嵌套控制器中以$scope.myDependency的形式访问它。我对此犹豫不决,因为我将$scope属性与HTML中使用的数据或方法相关联,而这个对象则不然。但这似乎也是从父控制器访问数据的最典型方式。我可以使用controller as语法使SubControllerPrimaryController之间的依赖关系更加清晰,例如$scope.primary.myDependency
  2. 将数据放入共享的第三方服务MyService.myDependency。我不太喜欢这个,因为这是以这种方式使用这项服务的唯一场景/路线,而且看起来有点矫枉过正。
  3. 使用$route.current.locals.myDependency访问数据。我喜欢这个,因为它清楚地表明SubController取决于路线的数据。这个控制器永远不会在这种情况下使用,所以我并不担心这种限制太多了。
  4. 我知道ui-router支持在嵌套视图中访问解析数据,但我们正在使用ngRoute

0 个答案:

没有答案