2016-06-28 5 views
0

나는 배열에 대한 업데이 트를하려고하고 그 요소를 먼저 splice하고 푸시해야합니다. 그 목록을 HTML 파일에서 사용하고 있는데, 여기서 ng-repeat를 사용하고 있습니다. 내 HTML 파일에왜 내 스플 라이스 또는 푸시 그 AngularJS 함께 작동하지

vm.editTemplate=function() { 
    var selectedTemplate = localStorage.getItem("selectedTemplate"); 
    localStorage.removeItem("selectedTemplate"); 
    $mdDialog.show({ 
     controller: 'EditTemplateCtrl', 
     controllerAs: 'template', 
     templateUrl: 'views/templatess/addTemplate.html', 
     locals: { 
      template:selectedTemplate 
     } 
    }) 
    .then(function() { }, 
     function(item) { 
      console.log(item); 
      console.log($scope.templatesArray); 
      for (var i = 0; i < $scope.templatesArray.length; i++) { 
      if (item.id == $scope.templatesArray[i].id) { 
       $scope.templatesArray.splice(i,1); 
      } 
     } 
    }); 
} 

나는이

<div class="hover" 
    ng-repeat="list in templatesArray" 
    ng-click="temp.selectUser(list)" 
    ng-class="{'active': temp.selectedRow.id == list.id}" 
    style=" cursor:pointer;border-bottom:1px solid #fff; margin-bottom:0;" 
    layout-align="space-around center" 
    layout="row"> 
    <span flex="5"></span> 
    <span id="{{list.id}}" flex="90" ng-click="temp.selectTemplate(list)"> 
     {{list.description}} 
    </span> 
    <span flex="5"></span> 
</div> 
+0

이 있습니까 당신이'을 console.log()를 호출되는 s의'? – Lex

+0

죄송합니다. 코드를 지우는 것을 잊어 버렸습니다. 코드 – Christian

+0

아니요. 괜찮습니다. 전화가 왔는지 궁금합니다. 오류 기능으로 설정 한 것 같아서 묻습니다. '.then (function success() {}, function failure() {})'는 폼이고 빈 함수 뒤에 코드가있는 함수가옵니다. 오류 함수를 사용해야하는 이유와 실제로 호출되는지 여부에 대해 궁금한 점이 있습니다. – Lex

답변

0

는이 같은 배열에 루프 내부의 접합을 할 좋은 생각하지 않아 있습니다.

또한 여기에서 이미 언급했듯이 splice 결과를 할당해야합니다.

그래서 차라리 할 것 :

1. Find the index, something like following (or with the help of a 
library like underscore.js to avoir to write your own loop) 

var index = -1; 

for (var i = 0; i < $scope.templatesArray.length; i++) { 
    if (item.id==$scope.templatesArray[i].id) { 
     index = i; 
    } 
} 

2. Then splice 

if (index > -1) { 
    $scope.templatesArray = $scope.templatesArray.splice(index,1); 
} 
+0

콘솔 로그에서 정보를 확인할 때 스플 라이스가 donde 인 것을 볼 수 있지만 html 파일의 내 목록에는 변경 사항이 없습니다 – Christian

+0

해결 된 문제는 jejeje라는 것이 었습니다. 같은 컨트롤러에서 3 번 , 그래서 어떤 시점에서 내 html dissapear와 conection. 그런 식으로. – Christian