0

我定义了以下路由:

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 的处理方式是什么?
4

0 回答 0