Код, который я до сих пор использовал для получения данных из веб-службы, которая принимает запрос 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)
Изменено {{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) {
});
Вы используете синтаксис {{}}
в вашем файле JavaScript, но этот синтаксис используется в HTML.
Когда вы используете ng-model="myID"
вас в вашем контроллере есть var
доступный как $scope.myID
.
Итак, измените:
Command: ["select * from mytable where id = " + {{myID}}]
чтобы:
Command: ["select * from mytable where id = " + $scope.myID]