2014-07-21 2 views
8

기본적으로 사용자가 항목을 끌어다 놓거나 위쪽/아래쪽 화살표를 클릭하여 목록의 항목을 이동할 수있게하려고합니다.Angular-UI UI 정렬 가능한 항목 수동으로 업데이트

ui-sortable/angular-ui로 재생되는 항목의 색인을 업데이트하는 좋은 방법이 있습니까?

감사합니다.

갱신

우리가 배열에서 항목을 제거하고 원래의 위치보다 하나 개의 인덱스 크거나 작게 표시 다시 추가 할 우리의 PLC의 기능을 추가하여이 문제를 해결 할 수 있었다. 여기에 실수 예입니다

$scope.upDown = function(oldIndex, newIndex) { 
    var item = $scope.list[oldIndex]; 
    $scope.list.splice(oldIndex,1); 
    $scope.list.splice(newIndex,0,item); 
}; 

http://jsfiddle.net/69auq/1/

그에 따라 아래로 해제하는 배열의 첫 번째 또는 마지막 ELEM이었다 또는 경우에 당신이 수표를 추가해야합니다.

+0

캡처 할 수있는 정렬이 중지 된 순간 범위의 항목이 새로운 순서로 표시됩니다. 그 (것)들을 또는 서비스에 그것의 ID를 밀십시오. – Darren

+0

솔루션을 답변으로 게시하고 수락 할 수 있습니까? –

답변

0

컨트롤러에서 항목을 배열에서 제거하고 원래 위치보다 크거나 작은 하나의 인덱스에 다시 추가하는 함수를 추가하여이 문제를 해결할 수있었습니다. 여기에 실수 예입니다

$scope.upDown = function(oldIndex, newIndex) { 
    var item = $scope.list[oldIndex]; 
    $scope.list.splice(oldIndex,1); 
    $scope.list.splice(newIndex,0,item); 
}; 

http://jsfiddle.net/69auq/1/

그에 따라 아래로 해제하는 배열의 첫 번째 또는 마지막 ELEM이었다 또는 경우에 당신이 수표를 추가해야합니다.

0

AngularJS와 마찬가지로 대답은 "think in Angular, not jQuery"입니다.

This CodePen 어떻게하는지 잘 설명해줍니다. 기본적으로, 당신은 ng-repeat의 바운드 배열로 밀어 넣는 범위 지정 객체를 가지고 있습니다. 나는 그것을 (내 창조물이 아니라) 믿을 수는 없지만, 구글은 나를 상당히 빨리 이끌었다. CodePen은 외부 종속성을 사용하지 않지만 알 수 있듯이 Angular-UI과 같은 것을 사용하는 것보다 더 많은 작업이 필요함을 의미합니다.

동일한 개념이지만 각도 -UI 종속성을 나타내는 a JSFiddle입니다. 각-UI를 사용하는 이점은 바인딩 된 데이터 배열은 같은 호출 할 필요가 있다는 것입니다 : 이미 파악 된 이후

var myapp = angular.module('myapp', ['ui']); 

myapp.controller('controller', function ($scope) { 
    $scope.list = ["one", "two", "three", "four", "five", "six"]; 
}); 

이것은, 당신의 부분에 적은 작업을 의미한다. AngularJS는 jQuery와 잘 어울립니다. 따라서 유스 케이스에 따라 jQuery UI에서 개발 방식이 크게 달라지지 않아야합니다.

+0

이 질문에 대한 대답이 아닙니다. 드래그 앤 드롭 기능을 제공하는 angular-ui를 사용하고 있습니다. 또한 드래그 앤 드롭을 사용하지 않고 배열에서 하나의 항목을 위/아래로 이동할 수 있어야합니다. – juliaallyce

+0

범위가 지정된 데이터 배열을 조작하는 본질 상 기능이 포함될 때 함수를 호출하여 목록 범위를 조작하려는 이유가 혼란 스럽습니다. 또한, 나는 분명히 'ui'의존성을 놓쳤다. 작업 솔루션을 게시 해 주셔서 감사합니다. –

관련 문제