首页 > 解决方案 > 在 Angular 1.6 中使用外部库时的 ReferenceError

问题描述

我正在使用 Java 和 Angular 1.6 编写简单的应用程序。对于依赖管理,我使用 pom.xml 中定义的 webjars。我正在尝试使用 flatpickr(js 库)和 Angular-flatpickr。我在 index.html 文件中添加了两行:(按此顺序)

<script src="https://cdn.jsdelivr.net/npm/flatpickr"></script>
<script src="webjars/angular-flatpickr/2.0.0/dist/ng-flatpickr.js"></script>

接下来我添加了这样的行:

var module = angular.module('atApp.somemodule', [
'angular-flatpickr' 
]);

和设置:

$scope.dateOpts = {
    dateFormat: 'Y-m-d',
    defaultDate: '2016-03-01 03:30:00 -0300'
};

$scope.datePostSetup = function(fpItem) {
    console.log('flatpickr', fpItem);
}

我尝试使用它:

<input ng-flatpickr fp-opts="dateOpts" fp-on-setup="datePostSetup(fpItem)" ng-model="date.selectedDateObj" data-enabletime="true">

然后我得到:

ReferenceError: Flatpickr is not defined
    at Object.link (ng-flatpickr.js:18)
    at angular.js:1351
    at angular.js:10694
    at invokeLinkFn (angular.js:10700)
    at nodeLinkFn (angular.js:10077)
    at compositeLinkFn (angular.js:9350)
    at compositeLinkFn (angular.js:9353)
    at nodeLinkFn (angular.js:10071)
    at angular.js:10416
    at processQueue (angular.js:17374) "<input ng-flatpickr="" fp-opts="dateOpts" fp-on-setup="datePostSetup(fpItem)" ng-model="date.selectedDateObj" data-enabletime="true" class="ng-pristine ng-untouched ng-valid ng-isolate-scope">"

有什么我错过的吗?(我是 javascript 新手)。我读过有关使用“要求”和“导入”的信息,但这可能不是可行的方法。

标签: javascriptangularjsangular1.6

解决方案


你有版本不匹配。尝试使用 ng-flatpickr v3.0.0


推荐阅读