AngularJS ng-repeat在单独视图中显示内容

时间:2014-12-14 00:37:59

标签: javascript html angularjs angularjs-ng-repeat

我正在开发基本的新闻Feed应用。我需要的是一个特定的新闻文章 entry.content ,在点击后显示在单独的视图中。两个控制器都可以访问数据,但我需要一个同步的点击事件,因此第二个控制器知道要显示哪个特定的文章。我已经在这方面工作了一段时间&无法在谷歌或此处找到涉及次要视图的相关链接。我需要一个单独的视图b / c我必须添加更多的HTML到该页面&最终点击文章之间的(上一个/下一个)。我有一个示例,它在click事件发生的地方工作,但内容显示在当前视图中,然后在单击后隐藏。

我有一个Plunker:http://plnkr.co/edit/lk66pRb7A6DkGM7NQKF7?p=preview

这是index.html代码:

<body ng-app="FeedApp">
  <h1>News Feed</h1>
  <div ng-controller="NewsCtrl">

    <div id="main">
    <div ng-view=""><!-- angular yield --></div>
    </div> <!-- main -->

  </div> <!-- NewsCtrl -->
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="main.js"></script>
</body> <!-- FeedApp -->

以下是home.html代码:

<div ng-repeat="new in news">
  <h3 ng-repeat="entry in new.entries" ng-if="$index < 3">
    {{entry.title}}
    </br>
        <a href="#/" ng-click="show = !show">Display this story</a></br>
        <a href="#/article" target="_self" ng-click="show = !show">Desired: click this Link, go to #/article & display this story</a>
        <p class="news-entries" ng-show="show" ng-bind-html="TrustSnippet(entry.content)"></p>
 </h3>
</div> <!-- new in news -->

目前,在article.html文件中我只有一个后退按钮,因为我不确定要放在那里。所有其他代码都在Plunker中,但如果有帮助我可以在这里添加。

我当时认为这可能会使用当前的$ index值来解决,但我现在还不知道。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

您可能只想使用$ routeParams,如下所示:

这是一个Plunker

<强>路线

.when("/article/:articleId", { . . 

链接

<a href="#/article/{{$index}}"  . . .

<强>帕拉姆

FeedApp.controller("ArticlesCtrl", ["$scope", "$routeParams", '$http',
  function($scope, $routeParams, $http) {
    var index = $routeParams.articleId;

文章对象

$scope.article = $scope.news[0].entries[index];

我会完全省略entries位,我可能会使用工厂来管理/维护数据。