第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

服務(wù)與工廠的混淆

服務(wù)與工廠的混淆

一只斗牛犬 2019-07-03 10:58:57
服務(wù)與工廠的混淆據(jù)我所知,當我在工廠內(nèi)返回一個被注入控制器的對象時。在服務(wù)內(nèi)部處理對象時,我將使用this什么都不回。我以為服務(wù)是總是單身,而那個新工廠對象每個控制器都會被注射。然而,事實證明,工廠對象也是單例嗎?演示示例代碼:var factories = angular.module('app.factories', []);var app = angular.module('app',  ['ngResource', 'app.factories']); factories.factory('User', function () {   return {     first: 'John',     last: 'Doe'   };});app.controller('ACtrl', function($scope, User) {   $scope.user = User;});app.controller('BCtrl', function($scope, User) {   $scope.user = User;});變時user.first在……里面ACtrl結(jié)果證明user.first在……里面BCtrl也發(fā)生了變化。User是單身人士嗎?我的假設(shè)是在一個工廠的控制器中注入了一個新的實例?
查看完整描述

3 回答

?
手掌心

TA貢獻1942條經(jīng)驗 獲得超3個贊

對我來說,當我意識到他們的工作方式是一樣的:通過運行一些東西時,啟示就來了。一次,將他們得到的價值存儲起來,然后咳嗽起來。相同的存儲值當通過依賴注入引用時。

假設(shè)我們有:

app.factory('a', fn);app.service('b', fn);app.provider('c', fn);

三者的區(qū)別在于:

  1. a

    存儲的值來自運行

    fn

    ,換言之:

    fn()

  2. b

    的存儲值來自

    new

    fn

    ,換言之:

    new fn()

  3. c

    的存儲值來自于

    new

    fn

    ,然后運行一個

    $get

    實例的方法

這意味著,在角內(nèi)有類似于緩存對象的東西,每個注入的值只分配一次,當它們第一次被注入時,并且:

cache.a = fn()cache.b = new fn()cache.c = (new fn()).$get()

這就是為什么我們用this在服務(wù)中,并定義this.$get在提供者那里。

希望這能幫上忙。


查看完整回答
反對 回復(fù) 2019-07-03
  • 3 回答
  • 0 關(guān)注
  • 491 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號