Durandal은 VM에서 호출되고 뷰를 캐싱 할 수있는 메서드를 활성화/비활성화했습니다.Durandal처럼 Angular에서 컨트롤러 상태를 유지합니까?
동일한 기능을 각도로 사용하는 방법이 있습니까?
Durandal은 VM에서 호출되고 뷰를 캐싱 할 수있는 메서드를 활성화/비활성화했습니다.Durandal처럼 Angular에서 컨트롤러 상태를 유지합니까?
동일한 기능을 각도로 사용하는 방법이 있습니까?
서비스/공장을 사용할 수 있습니다. AngularJS의 싱글 톤이며 컨트롤러에 삽입 할 수 있습니다. 엄격하게 컨트롤러 당 하나의 서비스가 있고 뷰/컨트롤러에 대한 탐색 사이에 서비스가 유지됩니다. 이 작업을 할
http://docs.angularjs.org/guide/dev_guide.services.creating_services
방법은 컨트롤러가 주입 된 종속성으로 myService
를 취할 것입니다. 그런 다음 $ scope에 $scope.cache = myService
으로 지정합니다. 그런 다음 캐시 된 요소에 대해 cache.someProperty
에 바인딩합니다. 그냥 옆으로
:
할 수 있습니다 컨트롤러 간의 상태 데이터를 포함하는 경우에도 공유 서비스를 제공합니다. 이 패턴에 대해 권하고 싶지만 글로벌 상태처럼 보입니다. 컨트롤러간에 공유하는 서비스는 데이터 객체가 아닌 기능 만 제공하는 것이 이상적입니다. 특별히 글로벌 데이터 저장소를 찾는 것이 아니라면 :
Durandal과 그 방법에 익숙하지 않은 사람들을 위해 질문을 조금 더 확장 할 수 있습니까? – Stewie
@Stewie - durandal이 경로를 활성화 할 때 일치하는 ViewModel에 호출 된 여러 메소드가있을 것입니다. ViewAttached, Activate 및 Deactivate는 내가 매우 유용하다는 것을 알게 된 몇 가지 예일뿐입니다. 새로운 경로를 탐색 한 후 durandal은 prev를 유지할 수 있습니다. VM 참조가 살아 있기 때문에 다시 탐색하면 VM이 모든 상태를 다시로드 할 필요가 없습니다. – Tyler