Javascript 函数调用[Angular JS]的ng init和onload之间的差异

Javascript 函数调用[Angular JS]的ng init和onload之间的差异,javascript,angularjs,html,onload,angularjs-ng-init,Javascript,Angularjs,Html,Onload,Angularjs Ng Init,我正在开发一个angular应用程序,在这个场景中,我希望在页面加载时关注一个文本字段。我已经尝试过HTML5自动对焦,但必须找到一个替代解决方案,因为同样存在浏览器兼容性问题 我计划在页面加载时调用一个函数,该函数将关注我想要的输入字段。我使用Angularng init和onload来加载函数 我不确定在角度方面我应该遵循哪种方法,因为我对它们之间的差异有点困惑 onload <body onload="focusOnInput()"> <form n

我正在开发一个angular应用程序,在这个场景中,我希望在页面加载时关注一个文本字段。我已经尝试过HTML5自动对焦,但必须找到一个替代解决方案,因为同样存在浏览器兼容性问题

我计划在页面加载时调用一个函数,该函数将关注我想要的输入字段。我使用Angularng initonload来加载函数

我不确定在角度方面我应该遵循哪种方法,因为我对它们之间的差异有点困惑

onload

    <body onload="focusOnInput()">
       <form name="resetPasswordForm">
          <input name="NewPassword" type="password"/>
       </form>
    </body>
    <script>
       function focusOnInput() {
          document.forms["resetPasswordForm"]["NewPassword"].focus();
       }
    </script>

函数focusOnInput(){
document.forms[“resetPasswordForm”][“NewPassword”].focus();
}
角度ng初始值

    <body in-init="focusOnInput()">
       <form name="resetPasswordForm">
          <input name="NewPassword" type="password"/>
       </form>
       <script>
          function focusOnInput() {
             document.forms["resetPasswordForm"]["NewPassword"].focus();
          }
       </script>
    </body>

函数focusOnInput(){
document.forms[“resetPasswordForm”][“NewPassword”].focus();
}

onload不在您的上下文中。onload函数是DOM加载事件的回调函数

您的ng init处于角度上下文中。您需要使用angular ng init

代码中显示的ng init函数无法正常工作。ng int中定义的函数应在角度上下文中。您的focusOnInput()不在角度上下文中。它位于javascript上下文中

如果您想使用nginit,您需要将$window注入控制器,然后将assignfocusoninput分配给$scope,并在nginit中使用该方法

像这样的

angular.module().controller('TestController',['$scope','$window',function($scope,$window){

 ......

 $scope.myNewFunction = $window.focusOnInput;

 ......



}])

然后在您的ng init中使用此myNewFunction。

init和load on page生命周期之间的区别可能是什么?这就是答案