【问题标题】:Using a jQuery Plugin (flipclock) in an angular.js application在 angular.js 应用程序中使用 jQuery 插件 (flipclock)
【发布时间】:2013-05-31 17:00:11
【问题描述】:

我正在摆弄 AngularJS,并且必须包含一个名为 flipclock.js 的 jQuery 插件。我用谷歌搜索了很多,发现这个article 关于将 jQuery 包装在 Angular 指令中。

我查看了它并对 flipclock 做了同样的事情 - 看起来像这样

var app = angular.module('flipClock', []);
app.directive('FlipClock', function(){
    return {
        restrict: 'A',
        link: function(scope, element, attrs){
            $(element).FlipClock(scope.$eval(attrs.FlipClock));
        }
    }
});

使用以下标记

<div ng-App="flipClock">
    <div id="countdown" class="countdown" flipclock="{}"></div>
</div>

但什么都没有发生,我得到了错误:

Uncaught ReferenceError: Base is not defined - flipclock.js:37

而 :37 就是 FlipClock.Base = Base.extend({ ...

我的html中源码的顺序是:

<script src="components/jquery/jquery.js"></script>
<script src="components/angular/angular.js"></script>
<script src="components/angular-resource/angular-resource.js"></script>
<script src="components/angular-cookies/angular-cookies.js"></script>
<script src="components/angular-sanitize/angular-sanitize.js"></script>

<!-- build:js scripts/scripts.js -->
<script src="scripts/app.js"></script>
<script src="scripts/controllers/main.js"></script>
<script src="scripts/controllers/pre.js"></script>
<!-- endbuild -->
<!-- build:js scripts/main.js -->

<script src="components/flipclock/libs/prefixfree.min.js"></script>
<script src="components/flipclock/flipclock.js"></script>

【问题讨论】:

  • 你找到方法了吗?也在寻找它

标签: javascript jquery html angularjs angularjs-directive


【解决方案1】:

指令定义名称区分大小写。它与 HTML 中的名称不匹配。尝试改变:

app.directive('FlipClock', function(){

app.directive('flipclock', function(){

$(element).FlipClock(scope.$eval(attrs.FlipClock));

$(element).FlipClock(scope.$eval(attrs.flipclock));

【讨论】:

  • 嗨,感谢您的反馈-我已修复,但它仍然是未定义的基础...我也尝试更改源顺序,但没有。该插件也在其 jquery 语法中工作。我不知道...
  • 如果您在没有 Angular 的情况下复制网站上的示例之一,它是否有效?我下载了flipclock 包,看起来Base 是在另一个文件中定义的,base.jsjs/libs 中。也许验证此文件在libs 子文件夹中。
  • 完成了这项工作 - 好吧,它仍然无法正常工作,但基本错误已经消失。谢谢 - 还没有看到明显的:)
  • 不客气。如果仍然无法正常工作,也许可以使用更新的 plunker/jsfiddle 发布一个新问题。
猜你喜欢
  • 2018-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-15
  • 2015-07-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多