TypeScript:如何在我的指令中定义一个静态字符串数组

时间:2016-02-05 11:22:07

标签: typescript angular

我有一个colorpicker小部件的指令。目前我已将范围中的颜色数组直接定义为scope.colorList,如下面的代码所示。

根据我得到的评论评论,我想声明一个静态颜色数组,而不是每次使用该窗口小部件时都必须直接写入范围。

export class MyDirective implements ng.IDirective {
    public link: (scope: IMyScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, ngModelCtnr: ng.INgModelController) => void;


    constructor() {
        var that = this;
        this.link = (scope: IMyScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, ngModelCtnr: ng.INgModelController) => {

            scope.colorList = ["#008b8b;", "#00bfff;", "#1766b5;", "#1768b5;", "#17b566;", "#1a7e55;", "#20b2aa;", "#25a071;", "#3b1153;", "#4f59ea;", "#4fc7ea;", "#522424;", "#633939;", "#6617b5;", "#68c4af;", "#7e1a43;", "#80e56f;", "#8b9dc3;", "#a560d6;", "#b56617;", "#b8860b;", "#ba55d3;", "#c0afaf;", "#c0c0c0;", "#c71585;", "#cd5c5c;", "#cec2e5;", "#dc143c", "#dcedc1;", "#f08080;", "#ff4040;", "#ffa500;", "#faebd7;"];

            ....
            });
        };
    }

}

1 个答案:

答案 0 :(得分:2)

您可以在班级中声明一个静态变量。

export class MyDirective implements ng.IDirective {
    private static COLOR_LIST = ["#008b8b;", "#00bfff;", "#1766b5;", "#1768b5;", "#17b566;", "#1a7e55;", "#20b2aa;", "#25a071;", "#3b1153;", "#4f59ea;", "#4fc7ea;", "#522424;", "#633939;", "#6617b5;", "#68c4af;", "#7e1a43;", "#80e56f;", "#8b9dc3;", "#a560d6;", "#b56617;", "#b8860b;", "#ba55d3;", "#c0afaf;", "#c0c0c0;", "#c71585;", "#cd5c5c;", "#cec2e5;", "#dc143c", "#dcedc1;", "#f08080;", "#ff4040;", "#ffa500;", "#faebd7;"];
    public link: (scope: IMyScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, ngModelCtnr: ng.INgModelController) => void;


    constructor() {
        var that = this;
        this.link = (scope: IMyScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, ngModelCtnr: ng.INgModelController) => {

            scope.colorList = MyDirective.COLOR_LIST;

            ....
            });
        };
    }

}

但是,我建议你改用constant recipe