2017-01-04 2 views
0

내가 registerController에 $ scope.errorMsg에 어떤 값을 할당각 템플릿

<body ng-app="MainController"> 
    <div class="page page-base {{ pageClass }}" ng-view> 
    </div> 
</div> 

index.html을

이전 그래서 이

<body ng-app="myApp"> 
    <div class="page page-base {{ pageClass }}" ng-view> 
     <div ng-controller="MainController" ng-click="doClick($event)"></div> 
     <div ng-controller="RegisterController"></div> 
    </div> 
</div> 
에 변경 변경의 범위 값을 표시 할 수 없습니다 1.6

컨트롤러에서 console.log를 할 때 값을 인쇄하지만 error.html 페이지에 표시되지 않습니다.

<div ng-controller="RegisterController">{{errorMsg}}</div> 

업데이트을 : 나는 각도에 새로운 오전

$scope.errorMsg = data.message; 
$location.path("/reg/error"); 

, 내가 RegisterController의 범위에 interpolation을 시도 내 문제

+0

ng-app 및 ng-controller 값은 어떻게 같을 수 있습니까? 문제를 fiddle 또는 plnkr으로 복제하는 데모를 만드십시오. 실제로 문제가 무엇인지 이해하기 쉽습니다. – Manish

+0

아니요 똑같은 응용 프로그램 이름은 myApp이고 컨트롤러는 자신의 이름을 가지고 있습니다 – user269867

+0

'범위'가 파괴 된 결과로 '경로'가 변경됩니다.이 'errorMsg'를'rootScope'에 넣어야 명령을 제공 할 수 있습니다 모든 콘트롤러에서 –

답변

1

에 대한 더 많은 정보를 추가 할 필요가 있으면 알려 주시기 바랍니다

이러한 새로운 각도에 대한 혼란의 일반적인 원인은 스코프와 컨트롤러가 바람이 불며 일시적인 데이터를 어디에 두어야하는지 명확하지 않습니다.

각도 서비스는 싱글 톤이므로 한 가지 해결 방법은 일시적인 상태를 저장하는 서비스를 구현하는 것입니다 (OP 변경의 경우 OP 개체 인 경우 "errorMsg").

다음은 베어 본 싱글 톤 서비스입니다.

app.factory('StateService', function() { 
    // A singleton object to stuff transient data 
    return { }; 
}); 

그것은 쉽게 도심 코드를 사용하여 개념을 보여줍니다 그래서

app.controller('ErrorController', ['$scope', 'StateService', function($scope, states) { 
. . . 
}); 

Here's a plunkr 같은 컨트롤러 인스턴스에 전달합니다.

+0

예 error.html 예 – user269867

+0

@ user269867 새 위치에서''$ scope.errorMsg''에 액세스 할 수 없으므로'''$ rootScope.errorMsg''와' 다시보기로 돌아가거나'''ui-router''를 사용하십시오. –

+0

@MiguelLattuada 당신은 OP의 문제로 올바른 길을 가고 있습니다. (하지만 $ rootScope를 사용하는 것보다 상태 서비스가 더 낫습니다). – RamblinRose

관련 문제