无法使Angular 1.5(在打字稿中)组件工作

时间:2017-03-02 23:22:42

标签: angularjs typescript

我无法使这段代码有效,不明白为什么它没有显示按钮:(

有什么想法吗?感谢。

https://jsfiddle.net/slishnevsky/Let38jho/10/

角/打字稿

let app = angular.module('app', []);

export class MyController {

    public name: string;

    constructor() {}

}

export class MyComponent implements ng.IComponentOptions {

    public bindings: any;
    public controller: any;
    public controllerAs: string;
    public template: string;

    constructor() {
        this.bindings = {
            name: '@'
        };
        this.controller = MyController;
        this.controllerAs = 'vm';
        this.template = '<button>{{vm.name}}</button>';
    }
}

app.component('MyComponent', new MyComponent());

HTML

<div ng-app='app'>

    <my-component name='Miranda'></my-component>

</div>

1 个答案:

答案 0 :(得分:1)

工作小提琴:https://jsfiddle.net/13ju990x/

两个问题:

  1. Typescript将export关键字转换为amd或commonjs(或umd)格式。 Look here for a quick example.我们没有任何模块加载器在jsfiddle中工作(我假设jsfiddle simpley接受你的代码并将它放在<script>标签中)。您只需打开开发人员工具,然后在原始代码中查看Uncaught ReferenceError: exports is not defined即可。

  2. Angular使用Kebab案例。所以你需要写app.component('myComponent', new MyComponent());而不是'MyComponenet'。我知道这很愚蠢。