繁体   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