【发布时间】:2015-05-29 19:06:03
【问题描述】:
我知道一种方法是将控制器对象附加到下面的范围。
interface IAppCtrlScope extends ng.IScope {
info: any;
}
class InfoCtrl {
header: string;
name: string;
public static $inject = ["$scope"];
constructor(private $scope: IAppCtrlScope) {
this.$scope.info= this; //expose controller
}
getData(): void {
//do something
}
}
在这种情况下,视图将是这样的,
<div ng-controller="InfoCtrl">
<div class="rm-dialog-header">{{info.header}}</div>
<span ng-click="info.getData()">{{info.name}}</span>
</div>
除了上述方法之外,还有一种方法可以公开控制器,这样我就不必在每个范围变量前面加上“info.”。这样视图会是这样的,
<div ng-controller="InfoCtrl">
<div class="rm-dialog-header">{{header}}</div>
<span ng-click="getData()">{{name}}</span>
</div>
有可能还是我错过了什么?
【问题讨论】:
-
在你得到答案之前,here 是我如何将它与工作中的 plunker 一起使用
-
@RadimKöhler,感谢您的链接,非常有用!
标签: angularjs typescript