Изменить данные в запросе http post с текстовым полем ввода

0

Код, который я до сих пор использовал для получения данных из веб-службы, которая принимает запрос sql и возвращает данные JSON. Когда я жестко кодирую myID с идентификатором в БД, я получаю данные. Я пытаюсь сделать это изменчивым во время выполнения, поэтому я пытаюсь использовать текстовое поле ввода, связанное с myID. Это вызывает неожиданный токен ошибки, когда я ввожу один и тот же идентификатор в myID. Любые мысли о том, как я могу привязать текст в текстовом поле к команде в моем объекте $ http? Благодарю!!!

    myApp.controller('myController', function ($scope, $http) {

                  var responsePromise = $http({
                      url: "http://mywebservice/sql",
                      method: "POST",
                      data: {
                          Command: ["select * from mytable where id = " + {{myID}}]
                      },
                      withCredentials: true,
                      headers: {
                          'Content-Type': 'application/json; charset=utf-8',
                          'X-Requested-With': 'XMLHttpRequest'
                      }
                  }).
                  success(function (resp, status, headers, config) {
                      $scope.message = resp.Data;
                      $scope.status = status;
                      $scope.success = resp.Success;
                      $scope.respLogs = resp.Logs[0].Message;
                  }).
                  error(function (resp, status, headers, config) {

                  });

myApp DIV

<input  type="text" ng-model="myID" />

Обновление 1:

Пробовал это, до сих пор нет радости. Когда я меняю текст в текстовом поле на ID в БД, я не вижу ответа с приведенной ниже ошибкой в моей консоли Javascript.

Другими словами:

Command: ["select * from [es.device_platf.bug] where id = " + $scope.hsdid]

не работает, но

Command: ["select * from [es.device_platf.bug] where id = '1234567'"] работает

SyntaxError: Unexpected token ,
    at Object.parse (native)
    at wc (http://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js:15:401)
    at $b (http://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js:82:143)
    at http://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js:83:50
    at m (http://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js:7:322)
    at fd (http://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js:83:32)
    at c (http://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js:84:211)
    at http://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js:120:182
    at n.$get.n.$eval (http://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js:134:493)
    at n.$get.n.$digest (http://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js:132:9)
  • 0
    Серьезно, вам нужно добавить скрипку, если вам нужна дополнительная помощь, чем эта, братан !!
Теги:
xmlhttprequest

2 ответа

1
Лучший ответ

Изменено {{myId}} до $scope.myID

myApp.controller('myController', function($scope, $http) {

         var responsePromise = $http({
             url: "http://mywebservice/sql",
             method: "POST",
             data: {
                 Command: ["select * from mytable where id = " + $scope.myID] // changes here
             },
             withCredentials: true,
             headers: {
                 'Content-Type': 'application/json; charset=utf-8',
                 'X-Requested-With': 'XMLHttpRequest'
             }
         }).
         success(function(resp, status, headers, config) {
             $scope.message = resp.Data;
             $scope.status = status;
             $scope.success = resp.Success;
             $scope.respLogs = resp.Logs[0].Message;
         }).
         error(function(resp, status, headers, config) {

         });
  • 0
    Попробовал это, пожалуйста, смотрите мое обновление в вопросе.
0
  1. Вы используете синтаксис {{}} в вашем файле JavaScript, но этот синтаксис используется в HTML.

  2. Когда вы используете ng-model="myID" вас в вашем контроллере есть var доступный как $scope.myID.

Итак, измените:

Command: ["select * from mytable where id = " + {{myID}}]

чтобы:

Command: ["select * from mytable where id = " + $scope.myID]
  • 0
    Попробовал это, пожалуйста, смотрите мое обновление в вопросе.
  • 0
    Я не могу воспроизвести ошибку. Я не нашел документ о «Команде». Мой совет: составьте запрос в вашей модели. В вашем контроллере вы можете вызвать службу так, чтобы: $ http ({url: "..", метод: 'POST', данные: {param1: param1Value, param2: param2Value ...}) .sucess ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню