2013-05-16 8 views
7

항목을 배열에 푸시하면보기가 목록을 새로 고치지 않습니다.각도 : 목록에있는 항목을 밀어도보기가 업데이트되지 않습니다.

테이블 :

<tbody id="productRows"> 
    <tr data-ng-repeat="product in products | filter: search"> 
     <td>{{ product.Code}}</td> 
     <td colspan="8">{{ product.Name}}</td> 
    </tr> 
</tbody> 

형태 : 컨트롤러

<form data-ng-submit="submitProduct()"> 
    Code: 
    <br /> 
    <input type="text" required data-ng-model="product.Code"/> 
    <br /> 
    <br /> 
    Naam: 
    <br /> 
    <input type="text" required data-ng-model="product.Name"/> 
    <br /> 
    <input type="submit" value="Opslaan" /> 
</form> 

submitProduct : 당신이 볼 수 있듯이

$scope.submitProduct = function() { 
    console.log('before: ' + $scope.products.length); 

    $scope.products.push({Code: $scope.product.Code, Name: $scope.product.Name}); 
    console.log('after:' + $scope.products.length); 
    console.log($scope.products); 

    $scope.showOverlay = false; 
}; 

, 나는 배열의 전체 항목을 기록하며 같은 동작 나는 기대할 것이다. 내가 기대하는 바를하지 않는 유일한 일은 새로운 가치를 보여주지 않는 내 테이블의 내용입니다.

새 행이 테이블에 표시되도록하려면 어떻게해야합니까?

+0

작동해야합니다. jsfiddle 또는 plnkr을 추가하십시오. –

+1

[plnkr] (http://plnkr.co/edit/UXvtEhNbiilRn6DjX93P?p=preview) 코드가 정상적으로 작동합니까? $ scope.products를 올바르게 정의하고 있습니까? –

+0

'submitProduct() '를 호출하는 코드는 무엇입니까? 이 코드가 Angular 외부에서 실행되고 있다면, submitProduct() 메소드 끝 부분에서'$ scope. $ apply()'를 호출하여 Angular가 다이제스트주기를 실행하게하여 뷰를 발생시킬 필요가 있습니다 업데이트. –

답변

5

답변과 의견에 감사드립니다. 문제는 다른 곳에서 발생했습니다. 내 routeProvider에서 나는 컨트롤러를 선언했다. 내 div에 ng-controller 지시어도 있습니다. 그래서 내 컨트롤러가 두 번 실행됩니다. ng-controller 지시어를 제거했을 때, 모든 것이 올바르게 작동해야했습니다. :)

+0

고마워요! , 그것은 또한 나의 문제를 해결했다, 나는 내 몸이 이미 ng 컨트롤러 속성을 가지고있는 동안 routeProvider에서 컨트롤러를 선언했다. 그게 문제라는 것을 어떻게 알았습니까? –

+0

@DanielFlores 음, 처음부터 끝까지 내 코드를 살펴 봅니다. 그래서 ap.module, app.routes로 시작하여 내 생각에 도달했습니다. 그리고 내가 내 견해를 볼 때 나는 같은 길잡이를 두 번 선포했다는 것을 알게되었습니다. 내 길과 내 견해에서. – Martijn

+0

좋은 공연, 감사합니다 – jcc

5

나머지 코드는 보이지 않지만 컨트롤러에 $scope.products이 정의되어 있는지 확인하십시오.

이 부분은 example입니다.

나는 당신이 제공 한 코드에 만든 유일한 또한

했다 :

$scope.products = []; 

이 후 더 많은 정보를 제공하시기 바랍니다 도움이되지 않는 경우.

+0

당신의 솔루션이 나를 위해 일했습니다. 나는 같은 항목을 가지고 있는데, 여기서 항목은 $ $ scope.lists.push ({});로 푸시되지 않습니다. 나는 $ scope.lists = [];을 선언했다. 상단에 그것은 매력처럼 작동했습니다. 감사. –

관련 문제