Accessing an Angular.JS controller's name property in JavaScript (why is it the module's name?)
我有一些我不理解的简单 Angular.js 代码。
HTML:
1 | Hello, {{name}}! |
JavaScript:
1 2 3 4 5 6 7 | var myApp = angular.module('myApp',[]); var controller = myApp.controller('MyCtrl', ['$scope', function ($scope) { $scope.name = 'Superhero'; }]); alert(controller.name); |
HTML 指令产生了我所期望的:"Hello, Superhero!" 被渲染到页面上。但是警报框令人困惑。我希望它显示字符串 "Superhero",或者控制器的名称 "MyCtrl",但它实际显示的是模块的名称 "MyApp"。为什么?我需要将什么传递给
(注意,我确实尝试过文档,但它并没有帮助我解开控制器报告模块名称而不是它自己的名称的原因。)
您想从旧代码中访问 Angular 的代码。
我的做法是使用 angular.element:
1 2 3 4 5 | Hello, {{name}}! var theScope = angular.element(getElementById('myDiv')).scope(); alert(theScope.name); |