簡體   English   中英

AngularJS在哪里可以訪問已加載控制器的范圍?

[英]AngularJS Where can i access the scope of a loaded controller?

在哪里可以訪問已加載控制器的范圍? 我希望在初始化控制器的作用域以預定義視圖的模型后發生類似事件的事件。

是否有類似$rootScope.$on("$controllerLoaded")

您可以在控制器中通過將值分配給$scope來執行此操作。

function GreetingCtrl($scope) {
    // a simple string
    $scope.greeting = 'Hola!';

    // something more complex
    $scope.myModel = {id:1, name:'bobby'};
}

然后,您可以在視圖中使用它:

<label>{{myModel.name}}</label>

這將在其中呈現帶有“ bobby”的標簽(直到您更改模型,然后視圖會自動動態更新)。

最終,您的應用程序將開始使用某些描述的服務器存儲中的真實數據,並且您將需要使用$ http$ resource來獲取該數據。 檢查每個鏈接,以獲取有關如何從這些模塊初始化模型的示例。

查看控制器文檔以獲取更多信息

這還不太清楚,但聽起來像是您希望某個東西在加載特定控制器后通知應用程序的另一部分。 那是對的嗎?

如果是這樣,您有兩種選擇。 嘗試調查$emit 本質上是向父級偵聽器發送信號。

這是使用$emit$broadcast

$rootScope.$on('emitName', function(){
    //do what you want
});

另一個選擇(更多的是hack)是在控制器的末尾設置一個標志:

$rootScope.controllerLoaded = true

然后,無論您想知道何時完成,都只需檢查$rootScope.controllerLoaded標志。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM