2017-01-17 5 views
0

私はこの段階でdiv要素の表示と非表示を切り替えるコントローラを持っていますので、サービスを使い始めたのでクリーンアップしようとしています。サービス機能がトリガーされていません

コントローラスニペット

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) 
    } 
}) 

内部トグル方式とサービスとコントローラ

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) 
     //} 
}) 
を添加

メソッドを定義する代わりにサービスを使用するとき。火は消えない。あなたのng-click機能を期待するので、私は、私が

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> 
+0

Service.toggle()メソッドから返す予定はありますか? – rrd

答えて

1

コールそれをコンテキスト情報に関してに追加する方がよかったです。

$scope.toggle = function(){ 
    Service.toggle($scope.myVar, $scope.successOrFailureAlert); 
} 
関連する問題