【问题标题】:Minified JS only works by pasting source into Controller缩小的 JS 只能通过将源代码粘贴到 Controller 中来工作
【发布时间】:2013-07-18 15:03:13
【问题描述】:

我不确定我是否有明确的方式来展示/描述我遇到的问题。但这里是:

我用 AngularJS 开发了一个应用程序(还没有上线)。决定我们需要表格中某些指标的工具提示。我们喜欢TipTip jQuery Plugin 的整体外观。 在我的index 文件中,我正确地包含了 minified.js:

<script src="../assets/javascripts/app/jquery.tipTip.minified.js"></script>

(是的,路径是正确的,我可以点击chrome开发者工具中的链接查看源文件)。

在我的控制器中,我这样称呼它:

$scope.addTolltips = function() {
    $timeout(function(){$('.results-metrics').tipTip({maxWidth:"300px", defaultPosition: "top"});},500);
}

我添加了$timeout 以确保有足够的时间将页面上的动态内容加载到 DOM 中。我知道这可能不再需要了。

但是当tipTip() 被调用时,我得到一个控制台错误:

TypeError: Object [object Object] has no method 'tipTip'

但是,如果我将缩小的源代码粘贴到我的控制器中 tipTip() 之前,那么一切正常。 有什么想法吗?

【问题讨论】:

  • 提供一些关于你如何调用该方法的示例。
  • @Chandermani 您的请求已获批准 :)
  • 您是否在 angularjs 脚本之前为 TipTip 添加了 &lt;script&gt; 元素?
  • @obecker 我已经在各种地方尝试过,在角度之前和之后。在 jQuery 之前和之后(但我知道它需要在之后)。在body标签关闭之前我也试过了。
  • 如果您使用angular.element('.results-metrics') 而不是$('.results-metrics') 会发生什么?看起来$ 已更改...(顺便说一句 - 控制器是访问 DOM 的错误位置。)

标签: javascript jquery angularjs


【解决方案1】:

angularjs 通过 angular.element 函数 (http://docs.angularjs.org/api/angular.element) 提供 jQuery 功能,因此您应该使用它而不是 $(但是,我无法解释为什么 $ 在您的情况下不起作用)

【讨论】:

  • 感谢您的帮助。这解决了我的问题。奇怪的是它有效。在其他领域我使用$。谢谢。
猜你喜欢
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-21
  • 1970-01-01
  • 2023-02-10
  • 1970-01-01
相关资源
最近更新 更多