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

标签 javascript angularjs service

当调用这样的函数时:

HTML:

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

JS:

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

一切都运行良好,但是当我的函数位于服务内(可以通过 Controller 访问)时,该函数不会被调用。通过将服务名称作为前缀来调用它也不是一个选项(即使这在 javascript 代码本身中工作)myService.myFunction(var)

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

提前致谢

最佳答案

您需要通过作用域使用函数来调用服务函数。因此,在您的示例中,您可以在范围的 myfunction 方法内调用服务方法,前提是将您的服务注入(inject)到 Controller 中。

$scope.myFunction = function(var){

   myService.myFunction(var);    
}

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

关于javascript - 如何在 AngularJS ng-click(或 ng-change,...)中调用服务函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20054028/

相关文章:

android/iphone - 后台进程或服务可以注入(inject)代码或读取前台应用程序中的变量吗?

python - REST/JSON/XML-RPC/SOAP

javascript - 如何创建可互换的指令?

javascript - 如何在 angularjs 中点击按钮重置模型

Android 服务,可能与否?

javascript - 在使用 Webpack 进行新部署后处理丢失的动态 block

angularjs - 模拟服务以测试 Controller

javascript - React - 组件或一种拥有类似于 Chrome/Firefox JS 控制台的控制台的方法

javascript - 单击时 jQuery 无法识别 PHP 生成的子元素

php - 根据 ajax 回调的返回数据停止表单加载