要知道,在angularjs,大部分的邏輯是基於$scope
:是否有可能讓與原型方法和變量Angularjs工作
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() {}
}
現在我使用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
}
但我想從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() {}
}
然後找到將Scope
類與angularjs的$scope
關聯的方法。
但從haXe的生成的Scope
使用原型:
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() {}
在這種情況下,我無法找到一個解決方案,讓與它angularjs工作。
是否有可能讓angularjs與原型一起工作,因此它可以與haxe類系統(還有類似coffeescript/typescript的其他語言一樣支持類)工作?
沒有什麼目的這樣做,如果你想要的代碼可重用位,移動你的方法轉化爲服務。什麼angularJS調用控件不是MVC控制器,它是MVVM設計模式中的ViewModel。真正的控制器在指令中。 – mpm