2016-06-10 61 views
0

我需要能夠在角度控制器中看到日期選擇器是否是原始的。嘗試了各種各樣的東西,包括用方法發送原始值,但無法獲得此值。下面是視圖代碼:在角度控制器中獲得原始價值

<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類和前端控制,或者從後端設置原始狀態而不是獲取或檢查原始狀態

謝謝任何​​人可以幫助。

回答

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

plunkr

+0

當我恢復了變化遺憾的錯誤。更新的問題顯示實際更改,但仍然有相同的錯誤:無法讀取未定義的屬性'$ pristine' –

+0

這可能是由於控制器在創建視圖之前運行。查看更新的答案。 –

+0

app.js:11706 TypeError:無法讀取未定義的屬性'valuationDatePickerFrom' –

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

https://plnkr.co/edit/f0EWvYmoXCn8UOH3QCfE?p=preview