Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 使用typescript和angular1.5获取视图中的枚举值_Angularjs_Typescript - Fatal编程技术网

Angularjs 使用typescript和angular1.5获取视图中的枚举值

Angularjs 使用typescript和angular1.5获取视图中的枚举值,angularjs,typescript,Angularjs,Typescript,angular 1.5和Typescript的新增功能 我有一个返回数据的服务,一个数组-devices.headerEntries: [{name:id,value:45} ,{name:Mode,value:1},{name:State,value:2},{name:serialnum,value:123434} 我做了一个像这样的组件 module my.app { 'use strict'; export enum ModeEnum { Unknown = 0,

angular 1.5和Typescript的新增功能

我有一个返回数据的服务,一个数组-devices.headerEntries:

[{name:id,value:45} ,{name:Mode,value:1},{name:State,value:2},{name:serialnum,value:123434}
我做了一个像这样的组件

   module my.app {
'use strict';
export enum ModeEnum {
    Unknown = 0,
    Manual,
    Scheduled
}
export enum StateEnum {
  Unknown = 0,
  Playing,
  Paused,
  Stopped
}

@mmw.core.Component('my.app', 'mmwListView', {
    controllerAs: 'vm',
    bindings: {
        device: '<'
    },
    templateUrl: 'app/mydevice/mmw-listview.component.html'
})

class ListViewComponent {
    static $inject = ['$window'];

    constructor(private $window: ng.IWindowService
    ) {
    }

      public device: devices.headerEntries
}
   <md-content>
 <md-list-item class="md-2-line" ng-repeat="hi in vm.device.headerEntries">

      <div class="md-list-item-text">
        <h3> {{hi.name}}</h3>
        <p> {{hi.value}}</p>
      </div>
    </md-list-item>
  </md-list>
模块my.app{
"严格使用",;
导出枚举模式枚举{
未知=0,
手册,
预定
}
导出枚举状态枚举{
未知=0,
玩,
停顿,
停止
}
@mmw.core.Component('my.app'、'mmwListView'{
controllerAs:'vm',
绑定:{

设备:'Typescript枚举在传输后实际上是纯JS对象:

enum Foo {
    Bar,
    Baz
}

> Foo[0] = 'Bar'
> Foo[1] = 'Baz'
> Foo['Bar'] = 0
> Foo['Baz'] = 1
> Foo[8] = undefined
> Foo['Something'] = undefined
您可以通过

StateEnum[item.value]
通过过滤器(见下文)或预处理。您可以检查返回值(如果在枚举中找不到值,则未定义),以保持
45
123434
等值不变

过滤器示例:

export class StateFilter {
    constructor() {
        return (value: number) => {
            if (value == null) { return ''; }

            return StateEnum[value] || value;
        };
    }
}

angular
    .module('app')
    .filter('stateFilter', StateFilter);
然后在模板中:

<p>{{hi.value | stateFilter}}</p>
{{hi.value | stateFilter}

有关TS枚举的详细信息!

可能重复的