2013-10-24 2 views
1

그래서 항목 표가 있고 행을 클릭하면 행이 선택됩니다. 여기에 데모를 업로드했습니다 : http://plnkr.co/edit/m0TgTAQqITDIibMz7C4w?p=preview테이블에서 항목을 하나만 선택하는 것

질문은 어떻게하면 한 번에 하나씩 항목을 선택할 수 있고 이전 활성 항목은 선택 취소됩니까? 또한 컨트롤러 영역 외부에 배치해야하기 때문에 항목을 선택했을 때만 표시하는 방법에 대한 편집 및 제거 메뉴에 문제가 있습니다. 여러 선택에 대한 첫 번째 질문에 대한

<nav class="navbar navbar-default" role="navigation"> 
    <ul ng-show="true" class="nav navbar-nav"> 
    <li><a href="#">Remove</a></li> 
    <li><a href="#">Edit</a></li> 
    </ul> 
</nav> 
<table ng-controller="PersonController" class="table"> 
<tr> 
    <th>Name</th> 
    <th>Age</th> 
</tr> 
    <tr ng-repeat="person in people" ng-click="selectPerson(person)" ng-class="{active: person.selected }"> 
    <td>{{ person.name }}</td> 
    <td>{{ person.age }}</td> 
    </tr> 
</table> 

<script> 
function PersonController($scope) { 
    $scope.people = [ 
    { name: 'adam', age: 240 }, 
    { name: 'steve', age: 30 } 
    ]; 

    $scope.selectPerson = function(person) { 
    person.selected = true; 
    }; 
} 
</script> 

답변

2

, 당신은 다음, selectPerson가 호출 범위에 마지막으로 선택한 항목을 캐시 그 다음 시간 selectPerson이 lastPerson.selected = 거짓 말에 의해 불려 해제 할 수있다. 예 :

function PersonController($scope) { 
    $scope.people = [ 
    { name: 'adam', age: 240 }, 
    { name: 'steve', age: 30 } 
    ]; 

    $scope.lastPerson = null; 
    $scope.selectPerson = function(person) { 
    person.selected = true; 
    if($scope.lastPerson) { 
     $scope.lastPerson.selected = false; 
    } 
    $scope.lastPerson = null; 
    $scope.lastPerson = person; 
    }; 
} 

내가/편집 이동 추천 서비스로 메뉴를 제거 것입니다, 당신은 행동의 변화 어떤 컨트롤러 &에서 세계적으로 액세스 할 수 있습니다. https://www.sudonow.com/session/52699424ea4032693f000071

+0

안녕하세요, 저는 현재이있어 : 예 : 당신이 원하는 경우

<!-- HTML --> <div ng-controller="MenuCtrl" class="menu-parent"> <div ng-show="!isCollapsed" class="menu-container"> <!-- menu goes here --> </div> </div> // controller function MenuCtrl($scope, menuService) { $scope.isCollapsed = true; $scope.menuService = menuService; $scope.$watch('menuService.menuCollapsed', function(newVal, oldVal, scope) { $scope.isCollapsed = menuService.menuCollapsed; }); } // service angular.service('menuService', function() { return { menuCollapsed: false }; }); // example usage in any controller function RandomCtrl($scope, menuService) { $scope.randomEvent = function() { menuService.menuCollapsed = true; } } 

난 당신이 여기 살고 도와 드릴 것입니다. – Zhianc

관련 문제