我在哪里可以访问已加载控制器的范围?在为控制器初始化范围之后,我希望有类似事件的事件,以便为视图预定义模型。
是否有类似$rootScope.$on("$controllerLoaded")
答案 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
标志。