Typescript+angularjs自定义筛选器未知提供程序:

Typescript + angularjs custome filter Unknown provider:

本文关键字:程序 未知 自定义 筛选 Typescript+angularjs      更新时间:2023-09-26

我想创建一个自定义过滤器在angularjs中使用typescript我的代码

//Reverse.ts
class Reverse{
    static filter(msg:string) {
        return (msg) => {
            return msg.split("").reverse().join("");
        }
    }
}

//app.ts
/// <reference path="../lib/angular.d.ts"/>
/// <reference path="./Reverse.ts"/>
class MyApp{
    public app:AngularModule;
    constructor(){
          this.app = angular.module('myApp', []);
          this.app.filter ('reverse',(msg) => { return Reverse.filter(msg) });
    }
}
class AlbumController {
    constructor (private $scope) {
        this.$scope.test = '20 whatsomething';
     }
}

new MyApp();
//index.html
<!DOCTYPE html>
<html>
    <head>
        <title>My test TS</title>
    </head>
    <body>
    <div data-ng-app="myApp">
        <div data-ng-controller="AlbumController">  
            {{test | reverse}}
        </div>
    </div>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
    <script src="./Reverse.js"></script>
    <script src="./app.js"></script>
    </body>
</html>

我得到错误:未知提供程序:msgProvider<-消息<-反向过滤器你能帮我吗?

更新

我算出了

class MyApp{
    public app:AngularModule;
    constructor(){
          this.app = angular.module('myApp', []);
          this.app.filter ('reverse',() => { 
            return (msg) => {
                return Reverse.filter(msg);
            } 
          });
    }
}
class AlbumController {
    constructor (private $scope) {
        this.$scope.test = '20 whatsomething';
     }
}

new MyApp();

class Reverse{
    static filter(msg:string) {
        return msg.split("").reverse().join("");
    }
}

感谢相同的

如果使用--out编译器标志进行编译,您的原始代码就会工作:

tsc --out app.js app.ts

附言:我做了一个关于typescript+angularjs工作流的视频:http://youtube.com/watch?v=0-6vT7xgE4Y&hd=1