我正在尝试拆分使用文本字段输入的日期。我想要它在一个数组中。
在html文件中
<%= text_field_tag :checkoutdate, params[:checkoutdate],:placeholder => 'Select Date', :class=>'form-control datepicker input-lg',:required=>true,"ng-model" => "checkoutdate"%>
<p class='bg-danger' ng-show="isInvalidDate()">Check-out date cannot be lesser than check-in date</p>
在 Controller js文件中
App.controller('validationController',['$scope', function($scope){
$scope.isInvalidDate = function(){
var checkin = $scope.checkindate.split('-');
var checkout = $scope.checkoutdate.split('-');
if($scope.checkin[0]>$scope.checkout[0] || $scope.checkin[1]>$scope.checkout[1]){
return true;
}
}
我在控制台中收到错误
无法读取未定义的属性“split”
我做错了什么?
最佳答案
当值尚未定义时,您将遇到脏检查。在运行函数之前,只需检查以确保该值不是 undefined
。
App.controller('validationController', ['$scope',
function ($scope) {
$scope.isInvalidDate = function () {
if($scope.checkindate === undefined || $scope.checkoutdate === undefined){
return false;
}
var checkin = $scope.checkindate.split('-');
var checkout = $scope.checkoutdate.split('-');
if ($scope.checkin[0] > $scope.checkout[0] || $scope.checkin[1] > $scope.checkout[1]) {
return true;
}
}]);
关于javascript - Angularjs - 无法读取未定义的属性 'split',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23445651/