如何在 Aurelia 中使用 jQuery 个插件

How to use jQuery plugins with Aurelia

如何在 Aurelia 中使用 jquery 插件?特别是,我正在尝试使用 Notify.js.

在我的package.jsonjspm->dependencies如下:

"notifyjs-browser": "npm:notifyjs-browser@^0.4.2"

并且我尝试按如下方式导入它:

import { notify } from 'notifyjs-browser';

并像这样使用它:

$.notify("Test 123", "error");

但是,我收到此错误消息:

$.notify is not a function

我想我在 Aurelia 中的任何 jQuery 插件都会遇到同样的问题。我该如何解决?

更新: 看来这个问题可能只在我使用 JSPM 设置时存在,因为@peinearydevelopment 的回答和我收到的另一个回答same question 在 Aurelia 的 "discourse" 页面上都坚持 notifyjs 可以与 Aurelia CLI 一起正常工作。如果我不必为了从 JSPM 更改为 Aurelia CLI 而重写所有内容,那就太好了。谁能帮忙解决这个问题?对于这个小问题,迁移到 Aurelia CLI 似乎需要做很多工作。

没有你的确切设置,很难给你一个完整的答案。您收到错误的原因是您没有导入 jQuery。否则,Aurelia,或者更具体地说,它的资源加载器将不会将该脚本拉入您的应用程序,因此 notify 不是 'function',因为它是 jQuery 原型的扩展。

我知道这是一个有点不同的设置,但这是我如何让这个插件工作的。 我用 Aurelia cli 创建了一个新项目。

au new au-notifyjs

然后我安装了所需的包

au install jquery notifyjs-browser

这将安装 npm 包,更新您的 package.json 文件并使用对 js 文件和通知的 css 文件的正确引用更新 aurelia.json 文件。

然后我更新了 app.js 文件以测试它是否适用于以下内容:

import 'jquery';
import 'notifyjs-browser';

export class App {
  constructor() {
    this.message = 'Hello World!';
  }

  attached() {
    $.notify('Test 123', 'error');
  }
}

我 运行 应用程序并看到通知出现在屏幕的右上角。可以找到完整的代码项目 here。希望这对您有所帮助!

我无法让 Notify.jsJSPM 设置下工作,所以我决定寻找其他东西.我选择了 aurelia-notification 插件,效果很好。我仍然很想知道让它在 JSPM 下工作的问题是什么,因为可能有其他库也有同样的问题。所以如果有人有答案,请分享。