【发布时间】:2014-04-29 09:19:21
【问题描述】:
我有一个页面,页眉和页脚部分是通用的,而视图部分是不同的。
我为index.html页面编写的代码是:
<html lang="en" data-ng-app="dashboard">
<head>
<!-- All the Libraries & css-->
</head>
<body>
<header> </header>
<data-ng-view> </data-ng-view>
<footer> </footer>
</body>
</html>
对于data-ng-view,在首页我有3个divs,每个div都有自己的控制器。
主控制器是这样的:
var app = angular.module('dashboard', ['ngRoute'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/records',
{
templateUrl: 'view/homepage.html',
controller: 'RecordsController'
}
). otherwise({redirectTo: '/records'});
}]);
这是homepage.html的结构
<div id='main'>
<article>
<div ng-controller="FlipDemoCtrl">
<!-- contents to display -->
</div>
</article>
<nav>
<div ng-controller="HomePageLinks">
<!-- contents to display -->
</div>
<hr>
<ul ng-controller="ResolveProblem">
<!-- list of contents through ng-repeat -->
</ul>
<hr>
</nav>
</div>
我的问题是:
我应该如何定义RecordsController,以便通过这个控制器我能够调用FlipDemoCtrl、ResolveProblem和HomePageLinks控制器。
function RecordsController($scope, $http) {
// How should I write this function to call the multiple controllers
}
【问题讨论】:
-
有几种方法可以实现这个目标:事件广播、uber-controller、common shared
service。在你的情况下,我可能会使用这三个中的最后一个。 -
@arturgrzesiak:好的。请提供任何有用的链接来创建服务或更好地为我提供服务的语法。
-
@VaibhavJain :查看此链接,您可以将事件从父母广播到孩子。 stackoverflow.com/questions/19038778/…
标签: angularjs controller