【问题标题】:Adding jQuery dependency breaks meanJS application添加 jQuery 依赖会破坏 meanJS 应用程序
【发布时间】:2015-12-17 09:45:35
【问题描述】:

我有一个使用 jQlite 但现在需要完整的 jQuery 功能的 meanJS 应用程序。当我将 jquery 依赖项添加到 all.js 时:

lib: {
        css: [
            'public/app.css',
            'public/lib/bootstrap/dist/css/bootstrap.css',
            'public/lib/bootstrap/dist/css/bootstrap-theme.css',
            'public/lib/angular/angular-csp.css'
        ],
        js: [
            'public/lib/jquery/dist/jquery.js',
            'public/lib/angular/angular.js',
            'public/lib/Chart.js/Chart.js',
            'public/lib/momentjs/min/moment.min.js',
            'public/lib/momentjs/min/locales.min.js',
            'public/lib/humanize-duration/humanize-duration.js',
            'public/lib/angular-timer/dist/angular-timer.js',
            'public/lib/countdown360/dist/jquery.countdown360.js'
        ]
    },

我现在加载的每个页面都尝试引导 angular 两次。一个函数调用来自我的代码文件application.js,而第二个函数调用,即引发错误的函数调用来自VM703,其文本与实际文件相同。

为什么我的代码从非文件运行以及如何停止它?我之前唯一一次看到 VMx 作为文件是如果我的控制台命令抛出错误,或者在 jsFiddle/codepen 等创建“文件”以运行的网站上。

编辑:“中断”是指第二次引导应用程序。我的 application.js 文件运行,根据需要引导 angular,然后运行它的虚拟副本,引发错误并似乎永久减慢网页速度。

【问题讨论】:

  • 控制台中是否显示“警告:尝试多次加载 Angular”?
  • 是的。抱歉的意思是明确说明“休息”的含义。
  • 万一,你不是已经在你的主 html 中加载了 angular.js 吗?
  • 是的,在这种情况下,VMx 似乎正在引用带有内联代码的脚本标记。我之前错过了它,因为出于某种原因,我想不出为什么 MEAN 团队会这样做,它在完成执行后删除了脚本标签。

标签: jquery angularjs meanjs


【解决方案1】:

我认为这可能会解决您的问题。

当您添加 JQuery 时,您的应用程序会在 ng-view 内计算两次标签,因此,我假设您的脚本正在加载到您放置 ng-view<body> 中。如果是这样,请将您的 ng-view 移动到 <div 以及将您的 <script> 移动到 <head>

【讨论】:

  • ng-view 是隐式还是显式指令?因为我的代码中没有出现 ng-view。
  • 这是隐含的。好吧,我正在处理这个假设。你通常会使用$routerProvider。检查这些家伙的问题,他们还添加了 JQuery。 here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-18
  • 2019-06-22
  • 2021-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多