84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
路由时两个页面能公用一个控制器吗,比如
javascript .state('a', { ... controller : 'aaaController' }) .state('b', { ... controller : 'aaaController' })
javascript
.state('a', { ... controller : 'aaaController' }) .state('b', { ... controller : 'aaaController' })
如果行的话,控制器是独立的作用域还是公用的,比如说我在控制器里声明了个变量i,在a页面中改变了i的值,当我路由到b页面时,i的值会跟着变吗
i
认证0级讲师
저도 최근에 Anglejs를 배우고 있습니다. 포스터에서 언급한 문제에 관해 간단한 시연을 해볼 수 있습니다.
다음과 같은 HTML 구조, 다른 보기, 동일한 컨트롤러를 가지고 있습니다
컨트롤러 코드의 일부:
먼저 표시 버튼을 클릭하면 출력 결과는 다음과 같습니다.
그런 다음 3으로 변경 버튼을 클릭하고 다시 표시 버튼을 클릭하면 결과는 다음과 같습니다.
이 실험을 통해 동일한 컨트롤러이지만 실제로는 두 개의 스코프가 전혀 관련이 없는 스코프임을 알 수 있습니다. 범위 구조도 dom 구조에 해당하는 트리 모양입니다. 위의 html 구조에는 두 가지 범위가 있습니다. 또 다른 명백한 예를 살펴보겠습니다:
콘솔을 보세요 결과가 두 번 인쇄되어 메서드가 두 번 실행되었음을 나타냅니다. 범위가 공유되면 두 번 실행되지 않습니다.
요약하자면, 컨트롤러에서 변수 i를 선언하고 페이지 a에서 i 값을 변경하면 페이지 b로 라우팅할 때 i 값은 변경되지 않습니다.
도움이 되길 바랍니다!
이런 식으로 사용하는 게 이상하네요. 이렇게 사용하는 것이 가능한지 잘 모르겠습니다
개인적으로 일반적인 사용법은 다음과 같습니다. 한 페이지, 하나의 컨트롤러 컨트롤러 간에 변수와 메서드를 공유해야 하는 경우 각도에서 서비스를 구축하여 변수와 메서드를 저장하면 됩니다. 우리가 작성한 서비스를 삽입하기만 하면 됩니다
공식 문서에는 서비스가 코드를 공유하는 데 사용된다고 명시되어 있습니다. 서비스 Angular 서비스는 DI(종속성 주입)를 사용하여 함께 연결된 대체 가능한 개체입니다. 서비스를 사용하여 앱 전체에서 코드를 구성하고 공유할 수 있습니다.
https://docs.angularjs.org/guide/services
경로를 전환한 후 컨트롤러의 수명 주기가 종료되고 현재 $scope 및 하위 범위가 종료됩니다. 여러 컨트롤러 간에 데이터를 공유해야 하는 경우 서비스를 이용할 수 있습니다.
$scope
저도 최근에 Anglejs를 배우고 있습니다. 포스터에서 언급한 문제에 관해 간단한 시연을 해볼 수 있습니다.
다음과 같은 HTML 구조, 다른 보기, 동일한 컨트롤러를 가지고 있습니다
으아악컨트롤러 코드의 일부:
으아악먼저 표시 버튼을 클릭하면 출력 결과는 다음과 같습니다.
그런 다음 3으로 변경 버튼을 클릭하고 다시 표시 버튼을 클릭하면 결과는 다음과 같습니다.
이 실험을 통해 동일한 컨트롤러이지만 실제로는 두 개의 스코프가 전혀 관련이 없는 스코프임을 알 수 있습니다.
으아악범위 구조도 dom 구조에 해당하는 트리 모양입니다. 위의 html 구조에는 두 가지 범위가 있습니다.
또 다른 명백한 예를 살펴보겠습니다:
콘솔을 보세요
결과가 두 번 인쇄되어 메서드가 두 번 실행되었음을 나타냅니다. 범위가 공유되면 두 번 실행되지 않습니다.
요약하자면, 컨트롤러에서 변수 i를 선언하고 페이지 a에서 i 값을 변경하면 페이지 b로 라우팅할 때 i 값은 변경되지 않습니다.
도움이 되길 바랍니다!
이런 식으로 사용하는 게 이상하네요. 이렇게 사용하는 것이 가능한지 잘 모르겠습니다
개인적으로 일반적인 사용법은 다음과 같습니다.
한 페이지, 하나의 컨트롤러
컨트롤러 간에 변수와 메서드를 공유해야 하는 경우 각도에서 서비스를 구축하여 변수와 메서드를 저장하면 됩니다. 우리가 작성한 서비스를 삽입하기만 하면 됩니다
공식 문서에는 서비스가 코드를 공유하는 데 사용된다고 명시되어 있습니다.
서비스
Angular 서비스는 DI(종속성 주입)를 사용하여 함께 연결된 대체 가능한 개체입니다. 서비스를 사용하여 앱 전체에서 코드를 구성하고 공유할 수 있습니다.
https://docs.angularjs.org/guide/services
경로를 전환한 후 컨트롤러의 수명 주기가 종료되고 현재
$scope
및 하위 범위가 종료됩니다.여러 컨트롤러 간에 데이터를 공유해야 하는 경우 서비스를 이용할 수 있습니다.