javascript - 服务功能未触发

标签 javascript angularjs

我有一个 Controller ,可以很好地在 div 元素上切换隐藏和显示,在此阶段我正在尝试清理,因此我开始使用服务。

内部带有切换方法的 Controller 代码段

    app.controller('addFormCtrl', function($scope, $http, $timeout, Service){
      $scope.myVar = true
      $scope.toggle = function (){
        $scope.myVar = !$scope.myVar
        //once toggled i.e form taken away success or failure message displayed for x time
        $scope.successOrFailureAlert = true;
        $timeout(function () {$scope.successOrFailureAlert = false}, 2000)
      }
})

服务

app.service('Service', function($timeout){
  var user = ""
  var location = ""

  this.toggle = function(var1,var2){
    console.log(var1)
    console.log(var2)
    var1 = !var1
    var2 = true;
    $timeout(function () {var2 = false}, 2000)
  }
})

已添加服务的 Controller

    app.controller('addFormCtrl', function($scope, $http, $timeout, Service){
      $scope.myVar = true
      $scope.toggle = Service.toggle($scope.myVar, $scope.successOrFailureAlert)

      //function (){
      //  $scope.myVar = !$scope.myVar
      //  once toggled i.e form taken away success or failure message displayed for x time
      //  $scope.successOrFailureAlert = true;
      //  $timeout(function () {$scope.successOrFailureAlert = false}, 2000)
      //}
})

当我使用该服务而不是在那里定义方法时。没有发生任何事情,开关不会触发。我希望我能在上下文信息方面添加更多内容

HTML

<div ng-controller="addFormCtrl">
  <span ng-show="successOrFailureAlert"> {{status}} </span>
  <button ng-click="toggle()"> Add Employee </button>
  <form ng-hide="myVar" ng-submit="submitAddEmployeeForm()">
    <input type="text" ng-model="name">
    <input type="text" ng-model="country">
    <input type="submit" value="Submit" />
  </form>
</div>

最佳答案

在函数内调用它,因为您的 ng-click 需要一个函数。

$scope.toggle = function(){
  Service.toggle($scope.myVar, $scope.successOrFailureAlert);
}

关于javascript - 服务功能未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41691620/

相关文章:

javascript - 从 angularjs include html 文件调用函数

javascript - 在angular js中,如何将数据从父 Controller 传递到子 Controller ?

javascript - 在嵌入式 PDFJS 上使用代码进行搜索

javascript - 在 d3 条形图中仅显示最大值

javascript - HTML/PHP 在我填充的地方设置选项值 select from array

javascript - AngularJS - 通过 ng-if 获取过滤数组的长度

javascript - 使用 JavaScript 使用 Selenium 滚动到网页上的元素

javascript - 在 PHP 文件中运行 JS 脚本不起作用

javascript - 根据名称将多个数组拆分为变量

angularjs - 如何在 AngularJS 中读取未知的提供者错误?