2016-09-28 71 views
0

我使用的是微軟的adal.js for angular,它通過一個漫長而複雜的權威性鏈登錄名,是唯一有密切關係,因爲在登錄過程完成後,阿達爾使其可欣賞到用戶的信息:僅在視圖中可用角變量,而不是控制器

<p> 
    {{userInfo.userName}} 
</p> 

這有效,但我不知道如何。

我使用controler-as語法,所以如果我想在我的控制器中使用$scope,我必須專門注入它,否則它不可用於所述控制器。

而且$scope沒有被注入到控制器。

記住,如果控制器沒有注入$scope,那麼視圖如何獲得$scope變量的保留?

感謝。

編輯的清晰度。我希望這個問題現在更有意義。

+0

'$ scope'被填充到控制器中並顯示在視圖中,爲了將數據輸入到控制器,您需要使用'ng-model'指令編輯:刪除了鏈接 – Baruch

+0

你很困惑。總是爲控制器創建一個範圍。控制器是否選擇使用它並不重要。所有角度表達式總​​是在範圍上進行評估。當您使用controllerAs時,控制器本身就會以您選擇的名稱存儲在範圍內。 –

+0

我可能會感到困惑,但如果我特別注入'$ scope'到控制器中,我只能得到'$ scope.userInfo'。否則,它的'$範圍未定義'。 – crowhill

回答

0

它看起來像adal.js庫管理一個USERINFO對象爲您的rootScope。不幸的是,這意味着如果你想在控制器中訪問它,你必須在您的控制器中注入一個作用域($ scope或$ rootScope)才能訪問它。

意見總是和只能訪問對象的範圍。爲了能夠訪問某些東西,必須將其附加到視圖的範圍中。我猜的角度開發者所做的,因爲如果你想避免注射範圍到控制器中的上述限制(把一個$範圍是多餘的)

語法{{ userInfo.userName }}而不是{{ $scope.userInfo.userName }},你可以創建一個工廠,注入$ rootScope並提供訪問您需要的任何方法。

+0

的對象我很欣賞答案。 – crowhill

+0

「視圖始終只能訪問範圍內的對象。」 你有鏈接到一些文件,可能會詳細說明這一點? – crowhill

+0

這是我從Angular編程中學到的一段時間。讓我看看,如果我能找到一些官方文件 –

相關問題