是否可以让Angularjs使用原型方法和变量

Fre*_*ind 5 javascript haxe class angularjs

你知道,在angularjs中,大多数逻辑基于$scope:

function Ctrl($scope) {
    $scope.name = "Freewind";
    $scope.hello = function() {
       alert($scope.name);
    }
    $scope.method1 = function() {}
    $scope.method2 = function() {}
    $scope.method3 = function() {}
    $scope.method4 = function() {}
    $scope.method5 = function() {}
}
Run Code Online (Sandbox Code Playgroud)

现在我正在使用haxe来生成angularjs代码,如果我的代码是:

class Ctrl {
   public function new(scope:Scope) {
      scope.name = "Freewind";
      scope.hello = function() {
         alert(scope.name);
      }
      scope.method1 = function() {}
      scope.method2 = function() {}
      scope.method3 = function() {}
      scope.method4 = function() {}
      scope.method5 = function() {}
   }
}

typedef Scope = {
    name:String,
    hello:Void->Void,
    method1: Void->Void,
    method2: Void->Void,
    method3: Void->Void,
    method4: Void->Void,
    method5: Void->Void
}
Run Code Online (Sandbox Code Playgroud)

但我希望从haxe的类系统中受益(代码可能更简单,更清晰),声明如下:

class Scope {
    public var name:String;
    public function hello() {}
    public function method1() {}
    public function method2() {}
    public function method3() {}
    public function method4() {}
    public function method5() {}
}
Run Code Online (Sandbox Code Playgroud)

然后找到一种方法将Scope类与$scopeangularjs 相关联.

Scopehaxe 生成的是使用原型:

Scope = function();
Scope.prototype.name = "something";
Scope.prototype.hello = function() {}
Scope.prototype.method1 = function() {}
Scope.prototype.method2 = function() {}
Scope.prototype.method3 = function() {}
Scope.prototype.method4 = function() {}
Scope.prototype.method5 = function() {}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我找不到让angularjs使用它的解决方案.

是否可以让angularjs与原型一起使用,因此它可以与haxe类系统一起使用(还有其他语言,如coffeescript/typescript,它们有类支持)?

bac*_*dos 2

为了得到这个问题的实际答案,应该提到现在这个库解决了这个问题: https: //github.com/freewind/HaxeAngularSupport ;)