在文档就绪时调用Angular函数

Sab*_*kar 28 javascript angularjs

有没有办法从JavaScript函数调用Angular函数?

function AngularCtrl($scope) {
  $scope.setUserName = function(student){  
    $scope.user_name = 'John';
  }
}
Run Code Online (Sandbox Code Playgroud)

我的HTML中需要以下功能:

jQuery(document).ready(function(){
  AngularCtrl.setUserName();
}
Run Code Online (Sandbox Code Playgroud)

这里的问题是我的HTML代码在加载页面时存在,因此html中的ng指令不会被编译.所以我想$compile(jQuery("PopupID"));在加载DOM时.

有没有办法在文档准备好的情况下调用Angular函数?

asg*_*oth 45

Angular有自己的功能来测试文档就绪.您可以执行手动引导,然后设置用户名:

angular.element(document).ready(function () {
    var $injector = angular.bootstrap(document, ['myApp']);
    var $controller = $injector.get('$controller');
    var AngularCtrl = $controller('AngularCtrl');
    AngularCtrl.setUserName();
});
Run Code Online (Sandbox Code Playgroud)

为此,您需要从html中删除ng-app指令.

  • 你可以使用`$ document`而不是`angular.element(document)`.检查[docs](http://code.angularjs.org/1.1.5/docs/api/ng.$document).请注意,您需要先注射它. (18认同)