从浏览器调用角度控制器功能

时间:2016-04-16 10:44:44

标签: javascript angularjs browser controller

当我不使用$scope语法来实现我的函数而是使用controller as语法时,如何从浏览器的控制台调用控制器的函数。注入没有ng-controller,因此我无法使用this SO question中提出的方法。我使用$stateProvider ui-router将我的控制器设置为如下视图:

$stateProvider.state('contacts', {
  template: ...,
  controller: 'ContactsCtrl as contact'
})

1 个答案:

答案 0 :(得分:0)

按浏览器我假设您的意思是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>

我希望这会有所帮助。虽然我不建议在角度app模块之外暴露控制器功能。但是,如果您想要临时修复,请继续使用此方法。