![](/img/trans.png)
[英]AngularJS: Sync Call the method in angular controller from javascript
[英]Call AngularJS method from Javascript
我正在使用AngularJS和Typescript。 我正在使用一个外部库,我需要从该库中调用AngularJS方法,该库位于普通javascript中,我遵循了此示例
但遗憾的是它没有用。
我得到的错误是该函数(在我的AngularJS类中)不是一个函数。
var scope = angular.element(
document.
getElementById("MainWrap")).
scope();
scope.$apply(function () {
scope.createSession(data);
});
现在,这都与做vm
,我在打字稿使用?
以下是打字稿代码
module MyCtrl{
interface IMyController{
createSession();
}
class MyController implements IMyController{
constructor(
){
var vm = this;
}
createSession(data){
console.log(data);
}
}
angular.module('app').controller('MyCtrl', MyController);
}
HTML
<section id="MainWrap">
</section>
有任何想法吗?
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);
});
但是如果可能的话,将其封装在指令中,因此您无需从应用程序外部访问角度组件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.