2014-12-18 4 views
2

컨트롤러 기능 내에서 $ scope 내에서 변수를 수정하려고하는데 영향을 미치지 만보기에는 적용되지 않았습니다. login.html에서AngularJS - 컨트롤러 기능 내에서보기에 범위가 적용되지 않았습니다.

app.controller('LoginCtrl', ['$scope', '$http', function ($scope, $http) { 

    $scope.test = "test"; 

    $scope.logIn = function() { 
     // This changes the value to test2, but does not applies it to the view. 
     $scope.test = "test2"; 
    }; 

}]); 

:

DEBUG: {{ test }} 

그리고 routeProvider :

$routeProvider 
    .when('/', { 
     templateUrl: '/views/login.html', 
     controller: 'LoginCtrl' 
    }) 

내가 설명서를 놓치지 뭔가?

감사합니다.

+0

Plunker에 문제의 데모를 제공해 주실 수 있습니까? 그것은 나를 위해 일하고 : http://plnkr.co/edit/xbZWsE2i422BrDLDYXI3?p=preview –

+0

적어도 전체 HTML을 포함하십시오. 'ng-controller' 또는'ng-app'를 올바르게 지정했는지 알 수 없습니다. – Aweary

+0

코드에서 'logIn' 함수가 실제로 스코프에서 값을 변경하기 위해 호출되고 있음을 보여주지 않습니다. – Enzey

답변

0

나는 이것이 프리미엄으로 알려진 참조 또는 상속 문제라고 생각합니다.이 게시물은 https://github.com/angular/angular.js/wiki/Understanding-Scopes입니다. 이 같은 코드를 시도하지만과 같이 객체의 내부 테스트을 넣어 : 각 내가 귀하의 경우 비동기 적으로 호출 생각 로그인 기능에 의해 만들어진 범위 변경을 인식하지 않기 때문에이 문제가 발생

$scope.viewModel = {}; 
$scope.viewModel.test = 'Test'; 
+0

내 문제가 해결되지 않습니다. 어쨌든 고마워! –

3

. 로그인을 호출 한 후() 비동기 I는 I가 로그인() 함수를 호출하는 HTML 요소에 ""= NG 제어기 두는 것이 발견

$scope.$apply() 
+0

어디에 두어야합니까? 이 경우 모든 HTTP 응답을 적용해야한다는 의미입니다. –

0

의해 범위 변경 강제.

실제로 두 번 호출했는데 뷰 업데이트가 실패합니다.

관련 문제