【问题标题】:Call Angular Controller Function from Browser从浏览器调用 Angular 控制器函数
【发布时间】:2016-04-18 03:11:32
【问题描述】:
当我的函数不使用$scope 语法而是controller as 语法时,如何从浏览器的控制台调用控制器的函数。没有注入ng-controller,所以我不能使用this SO question 提出的方法。我使用ui-router 的$stateProvider 将我的控制器设置为如下视图:
$stateProvider.state('contacts', {
template: ...,
controller: 'ContactsCtrl as contact'
})
【问题讨论】:
标签:
javascript
angularjs
browser
controller
【解决方案1】:
通过浏览器,我假设您的意思是您的 HTML 代码。
您的控制器定义中如何定义范围函数?
如果你使用的是虚拟模型
function ContactsCtrl(){
var vm = this;
vm.scopeFn = function(){
//Do sumthin
}
}
然后你可以从 html 中做到这一点:
<button ng-click="contact.scopeFn()" />
更新:如果你的意思是像<script>标签中的一样,那么通过浏览器的JS,
function ContactsCtrl(){
var vm = this;
vm.scopeFn = function(){
//Do sumthin
}
window.globalFn = vm.scopeFn;
}
然后在浏览器中调用它为:
<script>
//on some event :
window.globalFn();
</script>
我希望这会有所帮助。尽管我不建议在 Angular 应用程序模块之外公开控制器功能。但是,如果您想要临时修复,请继续使用这种方法。