2014-12-28 2 views
0

안녕 나는 HTML 페이지를 설계하고 AngularJS와 통과두 범위 사이에 전역

<script> 
     var app = angular.module('my-app', [], function() { 

     }); 

     app.controller('AppController', function ($scope) { 

      $scope.bind = function (e) { 
       id = e; 
       console.log(id); 
      }; 

      $scope.products = []; 

      $scope.add = function (id) { 
       var newProduct = { 
        productName: id, 
        productType: id, 
        productId: 1 
       }; 
       $scope.products.push(newProduct); 
      } 

      $scope.delete = function (product) { 
       var index = $scope.products.indexOf(product); 
       $scope.products.splice(index, 1); 
      } 
     }); 
    </script> 

내 문제는 내가 어떤 링크를 다음을 클릭하면 $scope.bind 함수가 호출 중입니다. 그런 다음 Link를 선택하고 $scope.add 함수를 호출하는 모델 부착 링크를 클릭하십시오. 링크의 정적 데이터, 즉 XY 그래프를 add 함수에 전달해야합니다. 이렇게하면 ng-repeat를 사용하여 테이블에 데이터를 추가 할 수 있습니다.

누구든지 내 스크립트에서 문제를 지적 할 수 있습니까?

+0

는'$ scope.add는()'인수'가 id'하지만 마크 업에 당신은 인수 – charlietfl

+0

내가 이전 기능 $의 scope.bind에서 ID를 전달하고,이 오류를 일으키는이 없습니다 !!!! 것은 내가 $ scope.bind에서 데이터를 전달해야한다는 것입니다. ('id'값을 'add'함수에 지정하면 정확한 제품을 선택하여 테이블에 새로운 제품이 추가됩니다.) –

답변

0

id 인수는 add()의 기능 범위에있는 id 전역을 숨 깁니다. id 전역에 액세스하려면 인수를 생략하면됩니다.

$scope.add = function() { 
    var newProduct = { 
     productName: id, 
     productType: id, 
     productId: 1 
    }; 
    $scope.products.push(newProduct); 
} 

그러나 제 3 자 라이브러리를 포함한 다른 코드로 인해 변형 될 수 있으므로 전역 변수는 사용하지 않는 것이 좋습니다. 컨트롤러 범위의 속성으로 id을 유지할 수 있습니다.

$scope.bind = function (e) { 
    $scope.id = e; 
    console.log($scope.id); 
}; 

$scope.add = function() { 
    var newProduct = { 
     productName: $scope.id, 
     productType: $scope.id, 
     productId: 1 
    }; 
    $scope.products.push(newProduct); 
} 
+0

카가와 슈헤이 감사합니다. 첫 번째 디자인 즉 id를 직접 참조하여 $ scop.add 함수에 전달 된 ID를 얻었습니다. 그러나 두 번째 방법은 나를 위해 제대로 작동하지 않았습니다 !!! 하지만 지금은 내 기능이 잘 작동합니다. 다시 한번 감사합니다 –