我定义了以下路由:
app.config(function ($routeProvider) {
$routeProvider.when('/', { redirectTo: '/articles' });
$routeProvider.when('/articles', {
controller: "ArticleCtrl",
templateUrl: "/myApp/article/index"
});
$routeProvider.when("/articles/new", {
controller: "ArticleCtrl",
templateUrl: "/myApp/article/create"
});
});
这是我的控制器:
app.controller("ArticleCtrl", function($scope, $location, $log, articleService) {
$scope.currentArticle = null;
if ($location.path() == "/articles") {
$scope.articles = articleService.list();
}
$scope.saveArticle = function() {
articleService.save($scope.currentArticle);
}
});
关于if ($location.path() == "/articles")
; 我这样做是因为当我的视图更改为通过以下链接控制的“/articles/new”路径时:
<a href="/myApp/#/articles/new">Add Article</a>
控制器正在调用我的服务以再次获取文章列表。几个问题:
- 我认为如果控制器已经在内存中一次,它就不会再调用它了
- 我为解决这个问题所做的工作是一个好的解决方案吗?
- 如果没有,AngularJS 的处理方式是什么?