2017-03-16 8 views
1

이 질문은 문자열이 각도 컨트롤러로 전달 될 수 있지만 템플릿에 정의 된 변수는 그렇지 않은 Angularjs How to pass parameter back to controller from directive with ng-click의 긴 기한 연장입니다.템플릿 정의 변수를 각도 컨트롤러에 전달하는 방법

JSFiddle에서 'string'은 컨트롤러로 전달되고 var foo는 'undefined'입니다.

index.html을 :

<div ng-app> 
    <div ng-controller="YourController"> 
    <button type="button" ng-click="showString(foo)">One</button> 
    <button type="button" ng-click="showString('Two')">Two</button> 
    <p>Result: {{string}}</p> 
    </div> 
</div> 

<script> 
    var foo = "bar"; 
</script> 

main.js :

function YourController($scope) { 
    $scope.string=''; 
    $scope.showString = function (provider) { 
    $scope.string= provider; 
    } 
} 

(여기에서 첫 번째 스택 오버플로 게시물 .. 날 쉽게 이동))

답변

0

가 발견 솔루션, 여기에 updated JSFiddle. index.html에서

1), 나는

$scope.foo = window.foo; 

더 나은 솔루션이있는 경우 의견을 자유롭게

을 추가 main.js에서

<script> 
    window.foo = "bar"; 
</script> 

2)에

<script> 
    var foo = "bar"; 
</script> 

을 변경했습니다.