从Javascript调用AngularJS方法

时间:2016-02-08 10:55:52

标签: javascript angularjs typescript

我正在使用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);

有什么想法吗?

1 个答案:

答案 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);
 });

但如果可能的话,将其封装在一个指令中,这样你就不需要从应用程序外部访问角度组件了