[英]how to call controller function from run block only with classname in angularjs
[英]how to call controller function from run block with id in angularjs
我想从运行块调用控制器功能。
的HTML
<div id="yourcontroller" ng-app="" data-ng-controller="mainController" data-module="yourcontroller">
</div>
在我的跑步中,我试图像下面这样调用控制器函数
angular.module('modulename', [])
.controller('myCtrl', ['$scope', '$window', function ($scope, $window ) {
$scope.yourControllerMethod = function(){
console.log("inside yourControllerMethod");
};
}])
.run(function($rootScope, $log, $window) {
var scope = angular.element(document.getElementById('yourcontroller')).scope();
scope.yourControllerMethod();
});
但是,我遇到了Uncaught TypeError: Cannot read property 'yourControllerMethod' of undefined
有人可以回答我想念的地方吗?
您需要在ng-app属性中添加模块,并且控制器是myCtrl而不是yourcontroller。
<div id="myCtrl" ng-app="modulename" data-ng-controller="myCtrl" data-module="yourcontroller">
</div>
我也不确定在调用运行时应用程序是否已启动。
为什么需要范围才能调用该方法? 我从普通的JavaScript代码中做了类似的事情。 但要提的是:我将ng-app链接到主体,在ready事件上附加了处理程序,未使用作用域,而是直接使用controller()函数。 希望这可以帮助:
angular.element(document).ready(function () {
var input = document.getElementById('myInputId');
input.onkeypress = function (event) {
if (event) {
if (event.keyCode === 13) {
angular.element(document.body).controller().aMethodFromTheController();
}
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.