如何在页面加载时获取HTML中的init值以控制Angularjs中的控件 app.controller('doublePointCtrl',函数($rootScope,$scope,$http,$filter,Flash){ var data=$scope.formData.mdpSunday; });
页面加载时,我无法在控制器中获取init值您需要等待变量为init,如何在页面加载时获取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
$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
来初始化作用域上的值。”。你基本上是在向后做这件事,你应该总是使用控制器来设置范围,而不是使用范围来设置控制器。回复有点晚了。但是伟大的答案(第二个)回复有点晚了。但是伟大的答案(第二个)