1

我正在尝试创建一个包含文章的网站。我有一个显示所有文章列表的页面,我尝试做一个显示文章详细信息的页面。我使用 angular.js 来获取我的数据的 json。获取我的文章列表没有任何问题,因为我只需要这样做:

function ArticleListCtrl($scope, $http) {
    $http.get('/articles/?format=json').success(function(data) {
        $scope.articles = data;
    });
}

但是现在我只想访问例如 id 为 4 的文章。我该怎么做?有没有办法将在 url 中输入的主键注入到 javascript 中?我是角度新手,我很确定有一个简单的方法!

4

1 回答 1

1

如果我理解正确,您需要为文章的详细视图定义部分模板和路线。

一个例子是here

更具体地说,您需要的是以下内容。

angular.module('myapp', []).
  config(['$routeProvider', function($routeProvider) {
  $routeProvider.
      when('/articles/:articleId', {templateUrl: 'partials/article-detail.html', controller: ArticleDetailCtrl}).
      otherwise({redirectTo: '/articles'});
}]);

上面所做的是劫持表单的 url,/articles/5/而不是实际GET向您的服务器执行该请求,它只会要求partials/article-detail.html. 这当然是您的文章详细信息模板,将由您的 ArticleDetailCrtl 控制器处理。

在您的 ArticleDetailCrtl 控制器函数中,不要忘记包含$routeParams 服务。这将使您能够访问articleId我们上面定义的 url 参数,例如 。

最后要做的是在您的文章列表模板中生成这些链接。例如:

<ul>
<li ng-repeat="article in articles"><a href="/articles/{{article.id}}/">{{article.title}}</a>
</ul>
于 2013-06-10T12:33:27.543 回答