Angularjs -不能读取property 'split'的定义

Angularjs - Cannot read property 'split' of undefined

本文关键字:定义 split property 不能 不能读 读取 Angularjs      更新时间:2023-09-26

我试图分割使用文本字段输入的日期。我想把它放在数组中

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

然后在控制台

中出现错误

Cannot read property 'split' of undefined

我做错了什么?

当值尚未定义时,您将遇到脏检查。在运行函数之前,只需检查确保值不是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;
                }
            }]);