如何在页面加载时获取HTML中的init值以控制Angularjs中的控件 app.controller('doublePointCtrl',函数($rootScope,$scope,$http,$filter,Flash){ var data=$scope.formData.mdpSunday; });

如何在页面加载时获取HTML中的init值以控制Angularjs中的控件 app.controller('doublePointCtrl',函数($rootScope,$scope,$http,$filter,Flash){ var data=$scope.formData.mdpSunday; });,html,angularjs,angularjs-scope,Html,Angularjs,Angularjs Scope,页面加载时,我无法在控制器中获取init值您需要等待变量为init,$watch它 您需要等待变量为init,$watchit 在设置值之前,您需要先读取ngInit值 第一个选项: 因此,您可以监听您的ngInit值,并在设置时读取您的数据。您可以使用$watch方法: 控制器 $scope.formData = {}; $scope.$watch('formData.mdpSunday', function (newVal, oldVal) { console.log(newV

页面加载时,我无法在控制器中获取init值

您需要等待变量为init,
$watch


您需要等待变量为init,
$watch
it


在设置值之前,您需要先读取
ngInit

第一个选项:

因此,您可以监听您的
ngInit
值,并在设置时读取您的数据。您可以使用
$watch
方法:

控制器

$scope.formData = {};

$scope.$watch('formData.mdpSunday', function (newVal, oldVal) {
    console.log(newVal);
});
  <body ng-app='app' ng-controller="ctrl" ng-init="data='5'">

    <input type="text" ng-model="data">

  </body>
HTML

(function(){

function Controller($scope) {

  //Watch you ngInit value
  $scope.$watch('data', function(){
    //When your value is set, you can retrieve it
    console.log($scope.data);
  });


}

angular
.module('app', [])
.controller('ctrl', Controller);

})();
(function(){

function Controller($scope) {

  $scope.init = function(n){
    $scope.data = n;
  }


}

angular
.module('app', [])
.controller('ctrl', Controller);

})();
HTML

(function(){

function Controller($scope) {

  //Watch you ngInit value
  $scope.$watch('data', function(){
    //When your value is set, you can retrieve it
    console.log($scope.data);
  });


}

angular
.module('app', [])
.controller('ctrl', Controller);

})();
(function(){

function Controller($scope) {

  $scope.init = function(n){
    $scope.data = n;
  }


}

angular
.module('app', [])
.controller('ctrl', Controller);

})();


我认为选项更干净。

您想在设置值之前读取
ngInit

第一个选项:

因此,您可以监听您的
ngInit
值,并在设置时读取您的数据。您可以使用
$watch
方法:

控制器

$scope.formData = {};

$scope.$watch('formData.mdpSunday', function (newVal, oldVal) {
    console.log(newVal);
});
  <body ng-app='app' ng-controller="ctrl" ng-init="data='5'">

    <input type="text" ng-model="data">

  </body>
HTML

(function(){

function Controller($scope) {

  //Watch you ngInit value
  $scope.$watch('data', function(){
    //When your value is set, you can retrieve it
    console.log($scope.data);
  });


}

angular
.module('app', [])
.controller('ctrl', Controller);

})();
(function(){

function Controller($scope) {

  $scope.init = function(n){
    $scope.data = n;
  }


}

angular
.module('app', [])
.controller('ctrl', Controller);

})();
HTML

(function(){

function Controller($scope) {

  //Watch you ngInit value
  $scope.$watch('data', function(){
    //When your value is set, you can retrieve it
    console.log($scope.data);
  });


}

angular
.module('app', [])
.controller('ctrl', Controller);

})();
(function(){

function Controller($scope) {

  $scope.init = function(n){
    $scope.data = n;
  }


}

angular
.module('app', [])
.controller('ctrl', Controller);

})();


我认为第二个选项更干净。

。“唯一适当使用
ngInit
的方法是对
ngRepeat
的特殊属性进行别名处理。”。“除此之外,还应使用控制器而不是
ngInit
来初始化作用域上的值。”。您基本上是在向后执行此操作,您应该始终使用控制器来设置范围,而不是使用范围来设置控制器。。“唯一适当使用
ngInit
的方法是对
ngRepeat
的特殊属性进行别名处理。”。“除此之外,还应使用控制器而不是
ngInit
来初始化作用域上的值。”。你基本上是在向后做这件事,你应该总是使用控制器来设置范围,而不是使用范围来设置控制器。回复有点晚了。但是伟大的答案(第二个)回复有点晚了。但是伟大的答案(第二个)