AngularJS在哪里可以访问已加载控制器的范围?

时间:2013-09-18 21:56:22

标签: javascript angularjs angularjs-controller

我在哪里可以访问已加载控制器的范围?在为控制器初始化范围之后,我希望有类似事件的事件,以便为视图预定义模型。

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

的内容

2 个答案:

答案 0 :(得分:1)

您可以通过将值分配给$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来获取该数据。检查每个链接,了解如何从这些模块初始化模型的示例。

查看Controller documentation了解详情

答案 1 :(得分:1)

它不太清楚,但听起来你想要在加载特定控制器后通知应用程序的另一部分。这是对的吗?

如果是这样,您有几个选择。尝试调查$emit。基本上向父听众发送信号。

这是write-up of using $emit & $broadcast

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

另一种选择(更多的是黑客攻击)是在控制器的末尾设置一个标志:

$rootScope.controllerLoaded = true

然后,无论您想知道何时完成,只需检查$rootScope.controllerLoaded标志。