javascript - Angularjs - 无法读取未定义的属性 'split'

标签 javascript ruby-on-rails angularjs

我正在尝试拆分使用文本字段输入的日期。我想要它在一个数组中。

在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/

相关文章:

ruby-on-rails - rspec let,如何取消设置属性

ruby-on-rails - 您如何在 RESTful 设计中处理资源上的 'actions',例如将电子邮件标记为已读?

javascript - AngularJS 中的 $http 服务

javascript - 是否可以从 JavaScript 数组中删除条目?

javascript - 防止多个upvote Angularjs

ruby-on-rails - 如何使用 mixpanel-ruby gem 来跟踪事件?

javascript - 获取输入元素的显示文本

php - 为什么只有一些 mysqli 查询有效?

javascript - Chrome 有时在重绘之前不会呈现 Google 字体

javascript - EJS渲染参数含义