angular.js:相当于domReady

时间:2012-09-24 02:42:18

标签: angularjs domready

警告:Angular新手未来。

我在angular.js页面中有这段代码

  <div class="clearfix" ng-controller="Controller">

    <h1>Active Ideas 
    <button type="button" ng-click="search()">get Ideas</button></h1>
    <hr>

然后我将控制器定义为:

function Controller($scope, $http) {
  $scope.search = function(){...

它运作正常。

我想在dom准备就绪时执行search()函数......

我尝试从$(function(){...调用它但我不知道如何从我的控制器手动执行方法

还尝试了

$scope.$on('$viewContentLoaded', function() {

但无法使其工作(也找不到太多文档......)

2 个答案:

答案 0 :(得分:14)

初始化Controller时应执行search。即。

function Controller($scope, $http) {
  $scope.search = function(){...};
  $scope.search();
}

当Angular的依赖注入构造您的控制器时,您就知道您的视图已编译,链接并准备好初始化代码。

答案 1 :(得分:0)

有时你需要等待第一个摘要,否则你的DOM会准备就绪,但它没有你在$ scope中设置的任何值,让我们说一个带有ng-的元素重复链接到$ scope中的数组并没有准备好。为了使其正常工作,您需要将代码包装在$timeout(..., 0)中,这样您的代码将在第一次摘要后立即执行。