我想从另一个控制器访问模型date
的值,并发出一个在json对象中传递该值的请求。但是这个ng-model
在控制器DateParseCtrl
的作用域中,这个controller
在另一个名为mainController
的控制器中。如何从mainController
访问此值并传递给json对象?Ps:我只想从mainController
获取date
的值。
index.html
<body ng-controller='mainController'>
<datepicker date-format="dd/MM/yyyy" selector="form-control"
ng-controller='DateParserController'>
<input type="text" uib-datepicker-popup="{{ format }}"
ng-model='date' ng-blur='getSomething()'/>
</datepicker>
</body>
date-parse-ctrl.js
angular.module('myApp')
.controller('DateParserCtrl', function($scope, uibDateParser){
$scope.format = 'dd/MM/yyyy';
$scope.date = new Date();
});
mainController
angular.module('myApp')
.controller('mainController', function($scope, $http){
var date = $scope.date;
$scope.getSomething = function(){
$http({
method: 'POST',
url: 'url',
data: {date: date}
})
}
});
发布于 2018-06-12 20:49:11
使用事件
date-parse-ctrl.js
angular.module('myApp')
.controller('DateParserCtrl', function($scope,$rootScope, uibDateParser){
$scope.format = 'dd/MM/yyyy';
$scope.date = new Date();
var dat=$scope.data;
$rootScope.$broadcast('sendDate',dat)
});
mainController
angular.module('myApp')
.controller('mainController', function($scope, $http){
$scope.$on('sendDate',function(event,data){
$scope.dateFromCtrl=data;
})
$scope.getSomething = function(){
$http({
method: 'POST',
url: 'url',
data: {date: $scope.dateFromCtrl}
})
}
});
发布于 2018-06-16 06:02:56
另一种方法是将日期作为参数提供给getSomething
函数:
<body ng-controller='mainController'>
<datepicker date-format="dd/MM/yyyy" selector="form-control"
ng-controller='DateParserController'>
<input type="text" uib-datepicker-popup="{{ format }}"
ng-model='date' ̶n̶g̶-̶b̶l̶u̶r̶=̶'̶g̶e̶t̶S̶o̶m̶e̶t̶h̶i̶n̶g̶(̶)̶'̶
ng-blur='getSomething(date)' />
</datepicker>
</body>
然后在主控制器中使用该参数:
angular.module('myApp')
.controller('mainController', function($scope, $http){
̶v̶a̶r̶ ̶d̶a̶t̶e̶ ̶=̶ ̶$̶s̶c̶o̶p̶e̶.̶d̶a̶t̶e̶;̶
̶$̶s̶c̶o̶p̶e̶.̶g̶e̶t̶S̶o̶m̶e̶t̶h̶i̶n̶g̶ ̶=̶ ̶f̶u̶n̶c̶t̶i̶o̶n̶(̶)̶{̶
$scope.getSomething = function(date){
$http({
method: 'POST',
url: 'url',
data: {date: date}
})
}
});
https://stackoverflow.com/questions/50817429
复制相似问题