Bal*_*ran 1 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;
});
Run Code Online (Sandbox Code Playgroud)
页面加载时,我无法在控制器中获取init值
您想ngInit在Angular设置值之前读取值.
第一种选择:
因此,您可以倾听自己的ngInit价值,并在设置时阅读您的数据.您可以使用以下$watch方法:
调节器
(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);
})();
Run Code Online (Sandbox Code Playgroud)
HTML
<body ng-app='app' ng-controller="ctrl" ng-init="data='5'">
<input type="text" ng-model="data">
</body>
Run Code Online (Sandbox Code Playgroud)
但是,你不应该使用$ watch.您可以获得更有效和正确的方法来实现这一目标.
第二种选择:
您可以设置ngInit为功能.
调节器
(function(){
function Controller($scope) {
$scope.init = function(n){
$scope.data = n;
}
}
angular
.module('app', [])
.controller('ctrl', Controller);
})();
Run Code Online (Sandbox Code Playgroud)
HTML
<body ng-app='app' ng-controller="ctrl" ng-init="init(5)">
<input type="text" ng-model="data">
</body>
Run Code Online (Sandbox Code Playgroud)
我认为第二种选择更清洁.