一尘不染

如何在AngularJS ng-click(或ng-change,…)中调用服务函数?

angularjs

当调用这样的函数时:

HTML:

<select ng-model="var" ng-change="myFunction(var)">
  <option ng-repeat="option in alloptions">{{option}}</option>
</select>

JS:

$scope.myFunction = function(){//do things}

一切正常,但是当我的功能在服务中(控制器可以访问)时,不会调用该功能。通过将服务名称作为前缀来调用它也不是一个选择(即使这在javascript代码本身中也有效)myService.myFunction(var)

所以我的问题是:当位于服务中的ng-change中调用服务时,正确的方法是什么?

提前致谢


阅读 416

收藏
2020-07-04

共1个答案

一尘不染

您需要使用通过作用域的函数来调用服务函数。因此,在您的示例中,只要将服务注入到控制器中,就可以在范围的myfunction方法内调用service方法。

$scope.myFunction = function(var){

   myService.myFunction(var);    
}

始终记住,UI中只有$ scope中定义的属性可用,而服务则不可用。

2020-07-04