使用enter按钮

时间:2017-05-23 08:02:40

标签: angularjs database

我想通过使用输入文本向我的数据库添加新注释,但我不想使用表单或onclick。这是我的输入文本结构

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

当我尝试使用bind时,它会在我按下enter按钮时显示我的注释,但我想将其插入到我的数据库API中。这是我的插入数据的功能。

    $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) {
    });
}}]);

啊,我做了什么后如何刷新这个页面? * insertdata / onclick按钮

1 个答案:

答案 0 :(得分:0)

您可以使用此指令触发输入键事件

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

从html使用它,如下所示

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

如果您使用ng-repeat显示注释,只需将新注释推送到注释数组

要重新加载页面,您可以使用$ route服务的重载方法。在你的控制器中注入$ window,然后在insertData()函数的末尾调用$ window.location.reload()

希望有所帮助