我试图合并两个概念,而我却无法让它们协同工作。
Concept 1
:路线解析。这很容易解释,我只想解决这样的某些模型:
$routeProvider
.when("/news", {
templateUrl: "news.html",
controller: "newsCtrl",
resolve: { news: function(Model) { return Model.news.getList(); }
Concept 1
:基本控制器的概念'我可以在路由controller: xyz
中使用,然后在实际视图html中加载' sub'控制器。例如......
app.js
$routeProvider
.when("/news/latest", {
templateUrl: "news-latest.html",
controller: "newsCtrl"
新闻-latest.html
<div ng-controller="newsLatestCtrl">
...
</div>
这样我就可以将公共代码放在newsCtrl
中的/news/latest
和newsLatestCtrl
特定代码中了$scope
问题是我需要将这两个概念结合起来,但这很难做到,因为我无法将局部变量传递给&#39; sub&#39;控制器,只有主控制器。
我看到的唯一选择看起来并不像是好主意......
答案 0 :(得分:2)
当我们不知道“基地管制员”的职责是什么时,很难帮助你。对我来说,您正在寻找的概念3如下:
$routeProvider
.when("/news", {
templateUrl: "news.html",
controller: "newsCtrl",
resolve: { news: function(Model) { return Model.news.getList(); })
.when("/news/latest", {
templateUrl: "news.html",
controller: "newsLatestCtrl"},
resolve: { newsLatest: function(Model) { return Model.news.getLatest(); });
module.controller('newsCtrl', function($scope, news) {
/* common code you want to share */
});
module.controller('newsLatestCtrl', function($scope, newsLatest, $controller) {
// instantiate your "base controller"
var ctrl = $controller('newsCtrl', {
"$scope": $scope,
"news": newsLatest
});
// customize and add special code for latest news
});