从Javascript调用AngularJS方法
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
来摆脱作用域,并使用控制器实例将 this 的属性和方法与模板绑定。执行此操作后,模板的scope
将具有一个名为别名的属性,该属性位于路由器/指令定义(controllerAs: alias
)或模板ng-controller="MyCtrl as alias"
上提供给控制器的别名。此属性是控制器实例,因此您可以像这样调用方法:
var scope = angular.element(document.getElementById("MainWrap")).scope();
scope.$apply(function () {
scope.ctrlAlias.createSession(data);
});
但是,如果可能的话,将其封装在指令中,这样您就不需要从应用程序外部访问角度组件。
相关文章:
- AngularJS:$q.dedefe()不能由工厂方法共享
- AngularJS错误:提供程序必须从$get工厂方法返回值
- 如何在所有ng点击事件AngularJS上启动一个方法
- 在angularjs中创建自定义控件的推荐方法
- Atom.io中AngularJS的方法完成
- 从AngularJs获取谷歌地图对象的正确方法是什么
- 修复AngularJS错误:提供程序必须从$get工厂方法返回值
- AngularJS从对象中获取另一个值的方法
- 在angularjs中将html项插入到现有模板HTML中有什么奇怪的方法
- 胸腺价值发送angularJS ng onclick方法
- angularjs post方法中得到405错误
- AngularJS在页面重定向上执行控制器方法
- 将php表转换为angularjs javascript方法
- AngularJs在调用服务方法后更新指令
- 拾取复选框如何在后方法angularjs中产生
- 在 ajax 响应中调用应用程序配置方法 - AngularJS
- 从另一个控制器中的指令内部定义的一个控制器调用方法:AngularJS
- 用JavaScript替换ngGrid中的一行'splice'方法- angularjs, ngrid
- 更好的监听变化的方法——AngularJS
- 解决方法AngularJS DOM异常