Angularjs 带有自定义指令$parser的角度引导UI日期选择器导致错误:不是有效的日期模型

Angularjs 带有自定义指令$parser的角度引导UI日期选择器导致错误:不是有效的日期模型,angularjs,angularjs-directive,angular-ui-bootstrap,Angularjs,Angularjs Directive,Angular Ui Bootstrap,我试图在一个输入元素上使用angularjs bootstrap ui datepicker指令,该元素还有另一个向模型添加$parser的指令。我得到一个错误,因为模型对象不是日期对象,因为解析器导致mdoel对象是一个属性名为customValue的对象 选择日期时的实际错误是,Datepicker指令:ng模型值必须是日期对象、自1970年1月1日起的毫秒数或表示RFC2822或ISO 8601日期的字符串 我曾尝试在customFormProp指令上设置优先级,并使用$parsers.u

我试图在一个输入元素上使用angularjs bootstrap ui datepicker指令,该元素还有另一个向模型添加$parser的指令。我得到一个错误,因为模型对象不是日期对象,因为解析器导致mdoel对象是一个属性名为customValue的对象

选择日期时的实际错误是,Datepicker指令:ng模型值必须是日期对象、自1970年1月1日起的毫秒数或表示RFC2822或ISO 8601日期的字符串

我曾尝试在customFormProp指令上设置优先级,并使用$parsers.unshift代替push,但似乎都不起作用

如何使angular bootstrap ui datepicker在具有将模型对象设置为日期以外的值的指令的元素上正常工作

angular.module('app').directive('customFormPropp', function () {
    return {
        require: 'ngModel',
        link: function (scope, elem, attrs, ngModel) {
            ngModel.$parsers.push(function toModel(value) {
                return {customValue: value};
            });

            ngModel.$formatters.push(function toView(input) {
                return input.value;
            });
        }
    };
}]);

<p class="input-group">
     <input name="endInterval" type="text" class="form-control" datepicker-popup="{{'MM/dd/yy'}}" ng-model="vm.form.endInterval" custom-form-prop="endInterval" is-open="vm.dates.endOpened" />
         <span class="input-group-btn">
             <button type="button" class="btn btn-default" ng-click="vm.toggleOpenDatePicker($event, 'endOpened')"><i class="fa fa-calendar"></i></button>
         </span>
</p>

为什么你们不能把日期传给模特?您试图传递给它什么?customFormProp指令将模型设置为{customValue:}。angular bootstrap datepicker ui指令尝试使用modelValue创建日期对象,其中包含:new Date ngModelCtrl.$modelValue$modelValue为{customValue:},但失败。请从输入中删除自定义表单属性。仍然不清楚发生了什么…如果我从输入中删除自定义表单道具,演示会有所帮助,但我希望保留此指令,因为其他代码要求所有模型值都是具有名为“customValue”属性的对象。我可以试着把这段代码放到一个演示中,看看它是否更容易解释。我想这可能是一个常见的用例,其中一个输入元素上有多个指令,每个指令都假设模型值是以某种格式存在的。