2017-05-23 4 views
0

Ich möchte einen neuen Kommentar zu meiner Datenbank hinzufügen, indem Eingabetext verwendet, aber ich möchte nicht Formular oder onclick verwenden. hier ist meine EingangstextstrukturEinfügen von Daten in die Datenbank mit der Eingabetaste

<input type="text" class="comment_input" ng-model="comment" ng-model-options="{updateOn : 'change blur'}" placeholder="To enter" /> 

Wenn ich zu verwenden binden versuchen, es ist mein Kommentar zeigen, wenn ich Enter-Taste drücken, aber ich will es meine Datenbank-API einzufügen .. Hier ist meine Funktion, um die Daten zum Einfügen .

$scope.insertData=function(){ 
    console.log($scope.comment); 
    console.log($scope.lang_code); 
    console.log($scope.user_id); 
    console.log($scope.product_id); 
    var dataPromise = Data.setData("API_URL","user_id="+$scope.user_id+"&product_id="+$scope.product_id+"&comment="+$scope.comment+"&lang="+$scope.lang_code); 
    dataPromise.then(function(greeting) { 
     console.log(greeting); 
     if (greeting.data.result == true) { 
      $scope.requestProductDetail(1,5,1); 
      $timeout(function() { 
      window.scrollTo(0,document.body.scrollHeight); 
      }, 0, false); 
     } 
    }, function(reason) { 
    }, function(update) { 
    }); 
}}]); 

anyone?

ah, und wie aktualisiert man diese Seite, nachdem ich etwas gemacht habe? * Insert/Onclick Taste

+0

Sie ng-keypress Richtlinie https verwenden: //docs.angularjs. org/api/ng/directive/ngKeypress – talentedandrew

Antwort

0

Sie diese Anweisung Schlüsselereignis auslösen können

app.directive('enterKeyPressed', function() { 
    return function (scope, element, attrs) { 
     element.bind("keydown keypress", function (event) { 
      if(event.which === 13) { 
       scope.$apply(function(){ 
        scope.$eval(attrs.enterKeyPressed); 
       }); 
       event.preventDefault(); 
      } 
     }); 
    }; 
}); 

Verwenden Sie geben es aus html wie unten

<input type="text" class="comment_input" ng-model="comment" enter-key-pressed="insertData()" placeholder="To enter" /> 

Wenn Sie ng-repeat verwenden Kommentare angezeigt werden, Drücken Sie einfach den neuen Kommentar in den Kommentar-Array

Um die Seite neu zu laden, können Sie die Reload-Methode des $ route-Dienstes verwenden. Injizieren $ Fenster in Ihrem Controller und dann $ window.location.reload() aufrufen, am Ende der insert() Funktion

Hoffe, es hilft

+0

Ich habe meine Antwort aktualisiert –

+0

Danke! es funktioniert jetzt: D – beginnerprogrammer

+0

Gern geschehen;) –

Verwandte Themen