2015-06-08 84 views
0

我不知道我在做什么错在这里,我试图添加一个角度xeditable datepicker到一个可编辑的窗体,但我得到以下错误,当窗体是显示angular-xeditable ui.bootstrap.datepicker解析错误

Error: [$parse:syntax] http://errors.angularjs.org/1.3.15/$parse/syntax?p0=Jun&p1=is%20an%20unexpected%20token&p2=5&p3=Mon%20Jun%2008%202015%2013%3A37%3A02%20GMT-0400%20(EDT)&p4=Jun%2008%202015%2013%3A37%3A02%20GMT-0400%20(EDT) 
    at Error (native) 
    at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js?ver=1.3.15:6:417 
    at ib.throwError (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js?ver=1.3.15:191:165) 
    at ib.parse (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js?ver=1.3.15:189:457) 
    at $get (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js?ver=1.3.15:110:285) 
    at https://workland.ca/wp-content/themes/upc/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js?ver=1.0:8:23047 
    at Object.r [as forEach] (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js?ver=1.3.15:7:302) 
    at link (https://workland.ca/wp-content/themes/upc/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js?ver=1.0:8:22940) 
    at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js?ver=1.3.15:70:141 
    at $ (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js?ver=1.3.15:70:197) <input type="text" class="form-control ng-pristine ng-untouched ng-valid ng-isolate-scope" ng-model="$data" datepicker-popup="dd-MMMM-yyyy" datepicker-mode="day" show-weeks="true" starting-day="0" init-date="Mon Jun 08 2015 13:37:02 GMT-0400 (EDT)" min-mode="day" max-mode="year" format-day="dd" format-month="MMMM" format-year="yyyy" format-day-header="EEE" format-day-title="MMMM yyyy" format-month-title="yyyy" year-range="20" show-button-bar="true" current-text="Today" clear-text="Clear" close-text="Done" close-on-date-selection="true" date-picker-append-to-body="false"> 

表格html。

<form         
    onbeforesave="onsave({$data:$data})" 
    editable-form 
    name="forms.{{formName}}" 
    > 
    <!-- more form controles... --> 
    <div 
     editable-bsdate="item.dateobtained" 
     e-datepicker-popup='yyyy-MM-dd' 
     e-name="dateobtained" 
     onbeforesave="" 
     e-required> 
    </div> 
</form> 

回答

0

我刚刚有这个想法,并认为我会传递到哪里去。我使用xeditable 0.1.9和ui-bootstrap 0.14.3。该错误来自一个日期对象,我将其追踪到datepicker的init-date属性。如果不指定init-date,则xeditable会放入“new Date()”,并且这是导致错误的日期对象来自的位置。我试过使用e-init-date将属性设置为别的东西,但是我找不到任何可行的东西。我最终进入了代码并注释掉#113行,因此xeditable不会为init-date做任何事情,它只是让ui-bootstrap通过默认值处理它。它看起来像datepicker设置为“new Date()”的默认值,所以我不知道他们为什么不一样。但如果我注释掉那条线,那么一切正常,没有更多的解析错误。

我还发现了一些其他的怪癖。日期选择器设置的格式几乎被datepicker忽略。我所做的是像往常一样使用e-datepicker-popup,然后以e-datepicker-popup-x-editable的格式重复该格式。事情是这样的:

E-日期选择器,弹出= 'YYYY-MM-DD' E-日期选择器,弹出-X编辑= 'YYYY-MM-DD'

才造成了这种日期是总是以我想要的方式显示,无论是否处于编辑模式,以及弹出式日历是否可见。否则,格式会根据控件的状态而改变。