AngularJS - 控制器在加载控制器之前执行

时间:2014-05-05 15:37:56

标签: javascript angularjs

Angular会自动将表单元素放在作用域上:$scope[formName],例如。

在上已经在范围内建立了此表单之前,我的控制器正在运行$scope[formName]未定义)。

表单不会立即出现,但是一旦单击该按钮,它就会出现: http://plnkr.co/edit/q3RJLfWWcZhm9Y6oQjy3?p=preview

是否有要监听的事件,或某种方式等待表单加载?

$scope.$watch(formName, ...)

工作?

2 个答案:

答案 0 :(得分:3)

您可以使用$timeout来执行摘要周期,然后在示波器上获得对表单的引用:

$timeout(function(){
  $scope.doIt();
}, 0);

但请注意,您需要将$timeout注入您的控制器:

controller('ctrl1', function($scope, $timeout){

更新这是一个有效的plnkr

答案 1 :(得分:2)

是的,似乎是$ scope。$ watch会起作用:

http://plnkr.co/edit/E9170S4k2GIGz6AKAd8n?p=preview

不确定这是否是" Angular Way"。还有其他建议吗?