html - 如何在页面加载时将 HTML 中的初始值获取到 Angularjs 中的 Controller

标签 html angularjs angularjs-scope

<ul>                                                                
<li ng-init="formData.mdpSunday='5'">
<input ng-model="formData.mdpSunday" name="mdpSunday" type="radio" value="5">
</li>
</ul>


app.controller('doublePointCtrl', function ($rootScope, $scope, $http, $filter, Flash) {
var data =$scope.formData.mdpSunday;
});

我无法在页面加载时获取 Controller 中的初始值

最佳答案

您想在 Angular 设置值之前读取 ngInit 值。

第一个选项:

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

Controller

(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);

})();

HTML

  <body ng-app='app' ng-controller="ctrl" ng-init="data='5'">

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

  </body>

但是,您不必使用 $watch。您可以获得更有效和更适当的方法来实现这一目标。

第二个选项:

您可以将 ngInit 设置为一个函数

Controller

(function(){

function Controller($scope) {

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


}

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

})();

HTML

  <body ng-app='app' ng-controller="ctrl" ng-init="init(5)">

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

  </body>

我认为第二个选项更简洁。

关于html - 如何在页面加载时将 HTML 中的初始值获取到 Angularjs 中的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32306766/

相关文章:

javascript - HTML5/JavaScript : open text file, 加载到文本区域/将文本区域内容保存到文本文件

html - 如何防止宽度为 100% 的输入溢出?

javascript - 在 Angular 指令中定义 ng-click 的函数

angularjs - 如何将一个类分配给一个报告,而不是奇数行,偶数行,而是日期列的变化?

javascript - 为 Angular 指令添加多个 'require' 选项

angularjs - 指令的隔离范围

javascript - window.print() 在页面打印后从复选框中删除复选标记

javascript - jQuery.data 只保存最后一个 Element 的数据

javascript - 如何在不访问 html 的情况下将 ng-app 添加到 html 元素

javascript - 更改范围变量时无法获取范围变量长度