angular.js - Angular的controller和service、factory的问题
怪我咯
怪我咯 2017-05-15 16:53:11
0
3
543

如果我多个controller共享一份数据,是在某个比较上层的控制器上保存数据,还是用factory保存这个需要共享的数据,如果用service会怎么样。

怪我咯
怪我咯

走同样的路,发现不同的人生

모든 응답(3)
为情所困

이 질문은 데이터를 사용할 때 범위 수준에서 데이터의 비즈니스 관련성이 얼마나 강한지에 따라 달라집니다.

즉, 특정 범위가 이를 사용할 때 위쪽으로 검색하여 특정 상위 범위를 확실히 찾을 수 있으며 범위의 상속을 사용하여 공유할 수 있다는 것을 매우 확신합니다. 그러나 중복된 개체 이름을 피하기 위해 각 컨트롤러에 고유한 네임스페이스를 제공하려면 controller as 구문을 사용하는 것이 좋습니다. 실제로 이 데이터를 $rootScope에 저장하여 전역적으로 공유할 수도 있습니다(그러나 $rootScope는 가벼울수록 좋기 때문에 권장되지 않음). -level 전역 컨트롤러를 사용하여 저장할 수도 있습니다. controller as 的语法给每一个 controller 唯一的命名空间以避免对象重名。实际上你甚至可以把这个数据保存在 $rootScope 来全局共享(但是不推荐,因为 $rootScope 越轻越好),或者是有一个最顶层的全局 controller 来保存也可以。

不强,就是说你无法确定何时何处会用到这个数据,那就用依赖注入咯。纯数据的话,建议用 module.value (可变数据)或 module.constant(不可变数据),当然也可以用 module.factory 返回一个对象(这就和 module.value 一样一样的)。module.service 常用于返回一个构造器,你可以利用它生成不同的对象实例(区别于其他的单例 service)。

实际上 module.value/constant/factory/service 全都是 module.provider

강하지 않습니다. 즉, 이 데이터가 언제 어디서 사용될지 결정할 수 없으므로 종속성 주입을 사용하세요. 순수 데이터의 경우 module.value(가변 데이터) 또는 module.constant(불변 데이터)를 사용하는 것이 좋습니다. 물론 module.factory code>도 사용할 수 있습니다. code>는 객체를 반환합니다(module.value와 동일). module.service는 생성자를 반환하는 데 자주 사용되며, 생성자를 사용하여 다른 개체 인스턴스(다른 싱글톤 서비스와 다름)를 생성할 수 있습니다. 🎜 🎜사실 module.value/constant/factory/service는 모두 module.provider의 변형(구문 설탕)입니다. 종속성 주입 및 서비스에 대한 공식 문서를 읽어보세요. 이 장을 읽고 나면 모든 것을 이해할 수 있을 것입니다. 🎜
滿天的星座

서비스 사용은 일반적으로 데이터를 저장하는 데 사용되며, 팩토리는 일반적으로 여러 서비스를 호출하거나 반환하는 데 사용됩니다. 물론 실제로는 차이점을 확인할 수 있습니다. 이것 아니면 이것

滿天的星座

실제로는 팩토리와 서비스 사이에 차이점을 찾지 못했습니다. js 객체가 마음에 들면 전자를 선택하세요. js oop이 마음에 들면 서비스를 사용하세요. . . 한 번역에서는 이렇게 설명합니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!