2014-12-15 20 views
6

Bit của một vấn đề lạ ở đây - vì vậy tôi sẽ cố gắng giải thích điều này càng rõ ràng càng tốt.góc cạnh, bỏ qua một giá trị nếu nó có một khóa/giá trị nhất định

Tôi có một lần lặp lại đơn giản sẽ hiển thị nội dung dựa trên những gì có giá trị khóa là .active được đặt thành true. Tôi cho phép người dùng cuộn qua nội dung với một số nút mũi tên bị ràng buộc với một số ng-nhấp chuột. Điều này hoạt động tuyệt vời, tuy nhiên tôi muốn loại trừ một mục khỏi mảng nếu nó có giá trị khóa của side = 'help' gắn liền với nó. Vì vậy, về cơ bản tôi muốn các mũi tên nhấp chuột để bỏ qua nó trong một ý nghĩa. Tôi không có quyền kiểm soát ở đâu trong mảng mục trợ giúp. Vì vậy, đây là những chức năng nhấp chuột

//flip right 
$scope.flipRight = function(index, parent){ 
    var idx = index + 1; 
    if (idx >= $scope.contentHere[parent].sides.length) { 
     idx = 0; 
    } 
    $scope.contentHere[parent].sides[index].active = false; 
    $scope.contentHere[parent].sides[idx].active = true; 
}; 
//flip left 
$scope.flipLeft = function(index, parent){ 
    var idx = index - 1; 
    if (idx < 0) { 
    idx = $scope.contentHere[parent].sides.length - 1; 
    } 
    $scope.contentHere[parent].sides[index].active = false; 
    $scope.contentHere[parent].sides[idx].active = true; 
}; 

Vì vậy, về cơ bản những gì tôi đang cố gắng để figuire ra là làm thế nào để có logic này bỏ qua mục nếu nó đã .side = 'giúp đỡ'. Tôi nghĩ về việc sử dụng lodash để _filter mảng bằng các mục không có giá trị, nhưng nó sẽ bù đắp chỉ mục để không hoạt động. Tôi không chắc chắn làm thế nào để tiếp cận này (có lẽ tôi đang suy nghĩ về điều này không chính xác?), Và có thể sử dụng một số hướng.

Cảm ơn bạn đã dành thời gian để đọc!

Trả lời

5
$scope.flipRight = function(index, parent){ 
var idx = index + 1; 
if(idx >= $scope.contentHere[parent].sides.length){ 
    idx = 0; 
} 
if($scope.contentHere[parent].sides[idx] == 'help'){ 
    $scope.flipRight(idx, parent); //Added to skip over to next item 
    $scope.contentHere[parent].sides[index].active = false; // Added for the first item does not turn .active to false Issue 
    return; // Added to skip execution of following line of codes incase of recursion 
} 
$scope.contentHere[parent].sides[index].active = false; 
$scope.contentHere[parent].sides[idx].active = true; 
}; 

//flip left 
$scope.flipLeft = function(index, parent){ 
var idx = index - 1; 
if (idx < 0) { 
idx = $scope.contentHere[parent].sides.length - 1; 
} 
if($scope.contentHere[parent].sides[idx] == 'help'){ 
    $scope.flipLeft(idx, parent); //Added to skip over to next item 
    $scope.contentHere[parent].sides[index].active = false; // Added for the first item does not turn .active to false Issue 
    return; // Added to skip execution of following line of codes incase of recursion 
} 
$scope.contentHere[parent].sides[index].active = false; 
$scope.contentHere[parent].sides[idx].active = true; 
}; 
+3

Lưu ý: Bạn cũng cần phải xem xét một trường hợp chiều dài của mảng là 1 và Zeroth chỉ số chính nó nếu có một giá trị 'giúp đỡ' tức Các Chỉ giá trị $ scope.contentHere [cha] .sides mảng có là 'help' –

+1

xin vui lòng thêm một số mô tả cho câu trả lời của bạn –

+0

rực rỡ! cảm ơn bạn! – ajmajmajma

Các vấn đề liên quan