AngularJS дважды вставляет данные в базу данных

#javascript #angularjs

#javascript #angularjs

Вопрос:

Я пытаюсь вставить данные в базу данных через AngularJS, но данные вставляются дважды.. Я пытался использовать ngRoute, но все равно сталкиваюсь с той же проблемой.

app.js

  var app = angular.module("addDepApp", []);
 app.controller('insertDepCtl', function($scope, $http) {

var isSend = false;
$scope.$on('newuser', function(event, data){
    load(true);

});


var load = function(isEvent){

    if($scope.$parent.newuser != null){
        isSend = true;
    }
};
load();

$scope.insertDepartment = function () {
    console.log("called insertDepartment");
    if (isSend == true){
        $scope.newuserSend = {'org_id': $scope.$parent.newuser.org_id, 'dep_name': $scope.department};
        $http.post("http://192.168.1.12:8888/XXXX/XXX/insertDep.php/",$scope.newuserSend)

    }

}

});
  

add.html

   <body ng-app="addDepApp">
  <div class="12u$" ng-controller="insertDepCtl">
  <input type="button" value="تسجيل" class="special" id="signup" ng-click="insertDepartment()"/>
  </div>
  </body>
  

Комментарии:

1. предоставьте демонстрационную версию, которая воспроизводит проблему в клиенте

2. @charlietfl в базу данных вставлены 2 строки, одна строка с пустыми данными, а вторая строка с данными, которые я отправил

Ответ №1:

Удалите ng-controller="insertDepCtl" из своего html-кода, ваш маршрутизатор вводит это для вас. Прямо сейчас вы вызываете все дважды

Комментарии:

1. Спасибо, но я удалил ngRoute

2. есть ли какое-либо решение?

3. Я получил эту ошибку «insertDepartment не определено».. Пожалуйста, обратите внимание, что я не использую ngRoute

4. любое решение, которое вы предлагаете?

Ответ №2:

Я изменил код на это, и теперь он работает нормально!!

  $scope.insertDepartment = function () {
    if (isSend == true) {

        var request = $http({
            method: "post",
            url: "http://192.168.1.106:8888/XXXX/XXX/insertDep.php/",
            data: {'org_id': $scope.$parent.newuser.org_id, 'dep_name': $scope.department},
            headers: {'Content-Type': 'application/x-www-form-urlencoded'}
        });
    }
}