我正在使用AngularJS和Typescript。我正在使用一个外部库,我需要从该库中调用一个AngularJS方法,该方法是在我跟随this example
的vanilla javascript中但遗憾的是它没有用。
我得到的错误是函数(在我的AngularJS类中)不是函数。
UIViewController
现在这与我在打字稿中使用的 var scope = angular.element(
document.
getElementById("MainWrap")).
scope();
scope.$apply(function () {
scope.createSession(data);
});
有关吗?
以下是打字稿代码
vm
}
这里是HTML
module MyCtrl{
interface IMyController{
createSession();
}
class MyController implements IMyController{
constructor(
){
var vm = this;
}
createSession(data){
console.log(data);
}
}
angular.module('app').controller('MyCtrl', MyController);
有什么想法吗?
答案 0 :(得分:0)
scope
是Angular用于绑定模板和控制器的对象。但是您可以使用语法controllerAs
来摆脱范围,并使用控制器实例将此属性和方法与模板绑定在一起。执行此操作后,模板的scope
将具有一个属性,该属性命名为您在路由器/指令定义(controllerAs: alias
)或模板ng-controller="MyCtrl as alias"
上为控制器提供的别名。此属性是控制器实例,因此您可以像这样调用您的方法:
var scope = angular.element(document.getElementById("MainWrap")).scope();
scope.$apply(function () {
scope.ctrlAlias.createSession(data);
});
但如果可能的话,将其封装在一个指令中,这样你就不需要从应用程序外部访问角度组件了