繁体   English   中英

从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摆脱作用域,并使用控制器实例将其属性和方法与模板绑定。 完成后,模板的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM