使用Angular从ng-repeat列表中获取项目

时间:2014-11-19 12:14:09

标签: html angularjs

我正在制作一个包含搜索结果列表的项目。像这样构建

 <div class="col-lg-6">
    <ul ng-repeat=" wiks in wiki">
       <li ng-mouseenter="abstract = wiks.abstract" ng-mouseleave="abstract = ''">
       <a href="#/view2">{{wiks.title}}</a>
       </li>
            <p>{{abstract}}</p>
   </ul>
 </div>

wiks对象不仅仅包含标题和摘要。为了减少对服务器的调用量,我真的想将这个对象保存在我的控制器中的一个变量中,用于下一个视图。

.controller('View1Ctrl',['$scope','WikiFactory' , function($scope, WikiFactory) {
    $scope.title = "Wiki Search Site";
    $scope.search = "";
    $scope.wiki= "";

    $scope.getWiki= function getWiki() {
        WikiFactory.getWiki($scope.search)
            .success(function (wiki) {
                $scope.wiki = wiki;
            })}
}])

.controller('wikiController', ['$scope','WikiFactory', function($scope , $WikiFactory){

    }])

所以我试图在我的View1Ctrl中创建一个$ scope.specifiedWik,但似乎无法找到如何让它成为我点击的wiks。当这个问题得到解决时,我想知道是否可以通过“大书og编程法”来调用新的控制器中的$ scope.wiki = $ scope。$ parent.specifikWiki?

谢谢,如果有人可以提供帮助

2 个答案:

答案 0 :(得分:0)

您需要$index

中的ng-repeat
<ul ng-repeat="wiks in wiki">
   <li ng-click="showOneWiki($index)" 
       ng-mouseenter="abstract = wiks.abstract" 
       ng-mouseleave="abstract = ''">
         <a href="#/view2">{{wiks.title}}</a>
   </li>
        <p>{{abstract}}</p>
</ul>

现在你可以使用这个showOneWiki($index)函数来获取点击的wiki

.controller('View1Ctrl',['$scope','WikiFactory' , function($scope, WikiFactory) {
$scope.title = "Wiki Search Site";
$scope.search = "";
$scope.wiki= "";
$scope.specifiedWik = {}; //to hold current wiki

//This will hold the current wiki
$scope.showOneWiki = function(index) {
  $scope.specifiedWik = $scope.wiki[index];
}

$scope.getWiki= function getWiki() {
    WikiFactory.getWiki($scope.search)
        .success(function (wiki) {
            $scope.wiki = wiki;
         })}
}])

$ index将返回数组中当前单击的项目索引

答案 1 :(得分:0)

我会将对象存储在您的工厂中,以便其他控制器可以使用。

<li ng-click="selectWiki(wiks)">

在控制器中:

$scope.selectWiki = function(wiki){
   WikiFactory.selected = wiki;
}

现在,当其他控制器加载时,您可以执行以下操作:

$scope.selected = WikiFactory.selected;
相关问题