亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Angular的controller和service、factory的問題

Angular的controller和service、factory的問題

楊__羊羊 2019-04-21 20:41:37
如果我多個controller共享一份數據,是在某個比較上層的控制器上保存數據,還是用factory保存這個需要共享的數據,如果用service會怎么樣。
查看完整描述

2 回答

?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

這個問題取決于你用數據的時候,這個數據的業務關聯性在你的scope層級里到底有多強。
強,就是說你非常確定在某個scope用到它的時候,向上找一定可以找到某個父級scope,那就可以利用scope的繼承性來共享。不過建議要用controlleras的語法給每一個controller唯一的命名空間以避免對象重名。實際上你甚至可以把這個數據保存在$rootScope來全局共享(但是不推薦,因為$rootScope越輕越好),或者是有一個最頂層的全局controller來保存也可以。
不強,就是說你無法確定何時何處會用到這個數據,那就用依賴注入咯。純數據的話,建議用module.value(可變數據)或module.constant(不可變數據),當然也可以用module.factory返回一個對象(這就和module.value一樣一樣的)。module.service常用于返回一個構造器,你可以利用它生成不同的對象實例(區別于其他的單例service)。
實際上module.value/constant/factory/service全都是module.provider的變種(語法糖),好好把官方文檔里關于依賴注入和服務那一章看一遍你就全明白了。
                            
查看完整回答
反對 回復 2019-04-21
?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

用service咯,service一般用來存數據,factory一般是用來調用多個service~或者返回方法,當然功能都是可以互用的,其實感覺是差不多的,至于他們的區別你可以去看這個或者這個
                            
查看完整回答
反對 回復 2019-04-21
  • 2 回答
  • 0 關注
  • 385 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號