【问题标题】: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()" />
    

    更新:如果你的意思是像&lt;script&gt;标签中的一样,那么通过浏览器的JS,

    function ContactsCtrl(){
      var vm = this;
      vm.scopeFn = function(){
        //Do sumthin
      }
      window.globalFn = vm.scopeFn;
    
    }
    

    然后在浏览器中调用它为:

    <script>
      //on some event :
      window.globalFn();
    </script>
    

    我希望这会有所帮助。尽管我不建议在 Angular 应用程序模块之外公开控制器功能。但是,如果您想要临时修复,请继续使用这种方法。

    【讨论】:

    • 我的意思是浏览器的javascript控制台
    • 查看答案的更新。我希望这是你想要的。
    猜你喜欢
    • 2014-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多