2017-09-01 39 views
0

我有一个修改按钮,当我想一下就可以了,在修改()功能将被执行,而文本按钮将变为保存,我点击它,保存()函数将被执行。AngularJS - 调用两个函数非顺序用NG单击

这些代码

<button class="btn btn-primary" ng-click="modify(); save()" ng-disabled="!modifyDisabled">{{button}}</button> 

$scope.button="Modifier" 
$scope.modify=function(){ 
    $scope.button="Enregistrer" 
    $http.get("http://localhost:5000/settings").then(function(response){ 
    $scope.settingsInserted = false 
    $scope.nbOperateurPresents= response.data.data[0].nbOperateurPresents 
    $scope.targetAmount1stHour= response.data.data[0].targetAmount1stHour 
    $scope.targetAmount2ndHour= response.data.data[0].targetAmount2ndHour 
    $scope.targetAmount3rdHour= response.data.data[0].targetAmount3rdHour 
    $scope.targetAmount4thHour= response.data.data[0].targetAmount4thHour 
    $scope.targetAmount5thHour= response.data.data[0].targetAmount5thHour 
    $scope.targetAmount6thHour= response.data.data[0].targetAmount6thHour 
    $scope.targetAmount7thHour= response.data.data[0].targetAmount7thHour 
    $scope.targetAmount8thHour= response.data.data[0].targetAmount8thHour 
    }) 
} 

$scope.save=function(){ 
console.log('saved') 
$scope.button="Modifier" 
} 

我想执行的第一次点击modifiy(),并在第二次点击保存()

我认为我应该使用第三个函数,但我不知道如何!

谁能帮帮我?

回答

1

你说得对,你需要控制器的第三个功能,它在修改和保存之间切换。应该很容易:

$scope.alreadyModified = false; 

$scope.modifyFirstAndThenSave = function() { 
    if (!$scope.alreadyModified) { 
    $scope.alreadyModified = true; 
    $scope.modify(); 
    } else { 
    $scope.alreadyModified = false; // just in case a third click should modify again 
    $scope.save(); 
    } 
}; 
+0

但我有一个问题,你能解释一下你所做的概念吗? –

+0

我将前一个状态存储在一个变量中。所以当我确定要调用哪个动作(修改/保存)时,我能够尊重这个值。 在这个例子中,我将变量从true更改为false,而将其他参数更改为false。你也可以用一行代码来实现这一点:'$ scope.alreadyModified =!$ scope.alreadyModified'因为我们在这里有一个布尔值(真/假),所以我们可以否定(前导'!')前一个值。 – Armin

+0

是的,谢谢你,这是有道理的 –