我在 AppGyver 中的角度控制器存在问题,因为从未调用过构造函数。我正在使用 angular 中的“controller as”语法,我不知道 AppGyver 是否支持它,因为据我所知,他的所有文档都带有“$scope sintax”。这是我的控制器:
interface ILoginControllerScope extends ng.IScope {
vm: LoginController;
}
interface ILoginController {
Login(): any;
}
class LoginController implements ILoginController {
static $inject: any = ['$scope', 'supersonic', 'steroids'];
constructor(private $scope: ILoginControllerScope, private supersonic: any, private steroids: any) {
this.supersonic.logger.log('This should be called');
$scope.vm = this;
}
Login(): any {
}
static controllerId(): string {
return 'loginController';
}
}
appUsers.controller(LoginController.controllerId(), LoginController);
这是我的观点:
<div ng-controller="loginController as vm" class="padding">
<div>
</div>
<div ng-hide="addonsUndefined">
<h1 class="center">Caredfor</h1>
<div class="center">
<img class="logoSize" src="/images/logo.png">
</div>
<div>
<button class="button button-block button-positive icon-left super-social-facebook" ng-click="vm.Login()">Sign in with Facebook</button>
</div>
</div>
</div>
编辑 1 生成的 JS:
var LoginController = (function () {
function LoginController($scope, supersonic) {
this.supersonic = supersonic;
supersonic.logger.log('This should be called');
$scope.vm = this;
LoginController.controllerId = function () {
return 'loginController';
};
LoginController.prototype.Login = function () {
};
return LoginController;
})();
appUsers.controller(LoginController.controllerId(), LoginController);