2017-02-05 1 views
0

Ich versuche eine "Bestätigen" -Schaltfläche für Benutzer meiner Website zu erstellen, um zu sehen, wenn sie auf eine Schaltfläche klicken, und ich verwende eine angularJS-Klasse. Mein Code ist wie folgt:Angularjs Class Confirm-Taste

class TodosListCtrl { 
    constructor($scope, $window){ 
    $scope.viewModel(this); 
    this.$scope = $scope; 
    } 
//... a bunch of functions 
    Clear(){ 
    var delete = this.$scope.confirm("Are you sure you want to clear the text?"); 
    if(delete){ 
     //delete stuff 
    } 
} 

Aber jedes Mal, wenn ich auf die Schaltfläche klicken, dass die Anrufe „Clear()“ Funktion, erhalte ich die Fehler

"this.$scope.confirm is not a function at TodosListCtrl.Clear" 

Weiß jemand, warum dies geschieht, und wie kann ich das beheben?

+2

Ich glaube, Sie dies nur nehmen müssen '$ scope' weg von' dieses $ scope.confirm' –

+0

Das funktionierte..! Danke, ich wusste nicht, dass es so einfach ist. –

+1

Kein Problem, ich mag es, wenn sie so einfach sind! –

Antwort

1

Nehmen Sie einfach this.$scope weg von this.$scope.confirm:

class TodosListCtrl { 
    constructor($scope, $window){ 
    $scope.viewModel(this); 
    this.$scope = $scope; 
    } 
//... a bunch of functions 
    Clear(){ 
    var delete = confirm("Are you sure you want to clear the text?"); 
    if(delete){ 
     //delete stuff 
    } 
}