如何在angularjs中访问ng重复之外的项目?

时间:2015-08-12 17:17:00

标签: javascript angularjs html5

我正在尝试显示来自ng-repeat的项目的数据(导致ng-repeat的项目总数为1,因为我按代码搜索)。

<script>
        var pdvApp = angular.module('pdvApp', []);

        pdvApp.controller('pdvController', function pdvController($scope) {
            $scope.itens = [
                {code: 1, name: 'Skittles', quantity: 5, price: 2.35},
                {code: 2, name: 'M&Ms', quantity: 55, price: 1.29},
                {code: 3, name: 'Gummy Bears', quantity: 5, price: 22.59},
                {code: 4, name: 'Snickers', quantity: 500, price: 0.89},
                {code: 10, name: 'KitKat', quantity: 500, price: 0.89},
            ];
});
</script>

....(在HTML中)

<input type="number" class="form-control input-lg" id="search" autofocus="" value="" ng-model="search.code"/>
<div class="col-md-8 form-group">
    <div  ng-repeat="item in filtered =(items| filter:search:true)">
        <span ng-show="filtered.length===1"><input type="text" class="form-control input-lg" id="desc" autofocus="" value="{{item.name}}"/></span>
     </div>
     <span ng-hide="filtered.length===1"><input type="text" class="form-control input-lg" id="desc" autofocus="" value="{{item.name}}"/></span>
 </div>

我希望这样做(在ng-repeat阻止之后,没有新的ng-repeat):

Name: 
    <div class="form-group">
        <input type="text" id="name" ng-model="name" class="form-control input-lg" value="{{item.name}}" readonly=""/>
    </div>

3 个答案:

答案 0 :(得分:1)

我相信你正在寻找Special repeat start and end points,它允许你在同一个重复中使用兄弟元素(而不是根元素。)

答案 1 :(得分:1)

有几种方法,但你必须知道元素的索引

  1. 在您的JS文件中添加$scope.item = $scope.items[0];,然后添加到HTML {{item.name}}

  2. 您可以尝试使用HTML {{items[0].name}}

答案 2 :(得分:1)

我认为&#34; 导致ng-repeat的项目数总是一个,因为我按代码搜索&#34;。

根据这个假设,您要获取的项目是过滤后的数组的第一个。

因此,您只需修改HTML即可检索过滤[0]

Name: 
<div class="form-group">
    <input type="text" id="name" ng-model="name" class="form-control input-lg" value="{{filtered[0].name}}" readonly=""/>
</div>

这是一个小型演示:JSFiddle link