【问题标题】:Add new JS class and template to aurelia project将新的 JS 类和模板添加到 aurelia 项目
【发布时间】:2018-12-05 16:01:46
【问题描述】:

我是 Aurelia 的新手,但我正在处理一个现有的项目并边走边学。 我想添加一个 javascript 类文件并让 NPM 将其包含在构建中,但我找不到有关如何执行此操作的明确文档。

它不是一个复杂的类,不需要html模板。

【问题讨论】:

  • 仅供参考,NPM 不负责构建 - 您可以自己运行 au buildnpm scripts 只是为了方便。另外,您可以在aurelia_project\tasks\build 下查看构建过程本身

标签: javascript node.js npm aurelia


【解决方案1】:

只需将包含您的类的 .js 文件添加到您的 src 文件夹并添加以下内容以将其导入您打算使用该类的文件中。

import * as MyClass from './my-classs';

【讨论】:

    【解决方案2】:

    按照约定,您可以使用以下内容创建一个类...

    export class MyClass {
        myProperty = 'foo';
        myOtherProperty = { key:'value' };
    
        constructor() {
            // constructor stuff (optional of course)
        }
    
        myMethod() {
            // do something
        }
    }
    

    然后在您的 ViewModel 中,例如...

    import { inject } from 'aurelia-framework';
    import { MyClass } from 'path/to/my-class';
    
    @inject(MyClass)
    export class MyViewModel {
        constructor(myClass){
            this.myClass = myClass;
        }
    
        attached() {
            console.log(this.myClass.myProperty);
            this.myClass.myMethod();
        }
    }
    

    你导入你的类的方式取决于它是否被写成一个模块。如果它不是一个模块,你必须像@john-little 提到的那样把它写出来。

    MyClass 将自动成为单例,直到您将其设置为瞬态(请参阅https://aurelia.io/docs/fundamentals/dependency-injection#object-lifetime-child-containers-and-default-behavior

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-02
      • 1970-01-01
      • 2019-05-11
      • 2020-05-15
      • 2013-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多