如何以角度为单位在ng-repeat中定位当前范围元素

时间:2016-07-22 13:07:09

标签: javascript html angularjs

在下面的代码中,在父div [class = timeAllot]内,无论何时,当我进行更改时(在输入按钮上,如am,pm,name等),然后,按钮div [div class =& #34;按钮"]元素应该是可见的。首先,当页面加载时,它应该是不可见的。

当我在第一个div上进行更改时,它不应该使所有类按钮div可见,它应该只使我改变哪个div。我的意思是,如果我确实改变了第一个&time; AllAllot'然后它应该只生成不可见的第一个div [div class =" buttons"]

问题是现在它使所有div元素都可见。

在我的控制器上,我有这段代码:

$scope.items = [{hours: 24, place: 'india'}, {hours: 24, place: 'uk'}, {hours: 24, place: 'USA'}];
$scope.dataItems = ['Items1', 'Item2', 'Item3'];

$scope.displaySaveCancel = false;

$scope.checkthiStuff = function(indexValue){
    console.log("Check this stufff...", indexValue);
    $scope.displaySaveCancel = true;

};

in html

<div class="timeAllot" ng-repeat="item in items" ng-change="checkthiStuff($index)">

    Name: <input type="text" name="name" ng-model="name"/>

    <div class="infos" ng-repeat="data in dataItems">
       AM: <input type="text" name="am" ng-model="am"/>
       PM: <input type="text" name="pm" ng-model="pm"/>
    </div>

    <div class="buttons" ng-show="displaySaveCancel === true">
    <button>save</button>
    <button>cancel</button>
    </div>

</div>

1 个答案:

答案 0 :(得分:0)

使用当前元素的$index

<div class="infos" >
   AM: <input type="text" data-ng-change="checkthiStuff($index)" name="am" ng-model="am"/>
   PM: <input type="text" data-ng-change="checkthiStuff($index)" name="pm" ng-model="pm"/>
</div>   

<div class="buttons" ng-show="currentIndex === $index">
    <button>save</button>
    <button>cancel</button>
</div>

在控制器中,

$scope.currentIndex = -1;
$scope.checkthiStuff = function(indexValue){
    $scope.currentIndex = indexValue; 

};