我需要能够在Angular控制器中看到datepicker是否是原始的。尝试了各种各样的事情,包括在方法中发送原始值但无法获得此值。以下是查看代码:
<form name="myForm">
<!-- Datepicker From -->
<div class="small-6 medium-5 large-2 columns" ng-if="vm.subViewActive">
<div class="input-group">
<input name="valuationDatePickerFrom" ng-model="name" type="text" class="datepicker" id="valuationDatePickerFrom" placeholder="DD/MM/YYYY" pikaday="vm.datePickerFrom" on-select="vm.selectStartDate(pikaday)" year-range="{{ vm.yearRange }}" >
<div class="input-group-addon">
<label for="valuationDatePickerFrom" class="postfix">
<i class="fa fa-calendar"></i> From
</label>
</div>
</div>
</div>
</form>
然后我也试过了:
var isPristine = $scope.myForm.valuationDatePickerFrom.$pristine;
console.log(isPristine);
在我的控制器中,但无法获得原始值。在这里阅读大量帖子,但主要是关于CSS类和前端控制,或者从后端设置原始状态而不是获取或检查原始状态。
感谢任何可以提供帮助的人。
答案 0 :(得分:2)
您正在使用:
var isPristine = $scope.myForm.valuationDatePickerFrom.$pristine;
但您的表单名称不是myForm
。
更改<input name="name"...
<input name="valuationDatePickerFrom"...
然后你可以使用:
var isPristine = $scope.userForm.valuationDatePickerFrom.$pristine;
此外,在创建视图之前调用控制器,因此在控制器运行时不存在myForm
。尝试添加$timeout
,如下所示:
$timeout(function() {
var isPristine = $scope.userForm.valuationDatePickerFrom.$pristine;
console.log(isPristine);
}, 100);
答案 1 :(得分:0)
上述解决方案仅适用于页面加载,但您在使用页面时需要知道此值。而是在发生操作时将值传递给控制器:
<form name="myForm">
<input type="text" name="valuationDatePickerFrom" ng-model="valuationDatePicker" ng-blur="alerty(myForm.$pristine)">
</form>
.controller('MainController', function($scope) {
$scope.alerty = function(isPristine){
alert('isPristine: ' + isPristine);
};