AngularJS로 REST 요청을 할 때 약간의 문제가 있습니다. PHP (Laravel)에서 서버 부분을 수행 했으므로 POSTMAN을 사용하여 테스트했으며 제대로 작동합니다. 난 그냥 {"expression":"(2+5)"}
처럼 json을 보내고 난 {"expression":"(2+5)","result":"7"}
같은 json을 얻을 POST/표현을 가지고, 몇 가지 POST 요청을 할 때 결과가 내 result.html 페이지에 연결해야합니다. 나는 경로를 제공 app.js를 쓰고, 나는 contoller.js AngularJS, 공장, POST 수행 후 GET 메소드
//post expression
myApp.controller('expressionController', ['$scope', 'postExpressionFactory', 'getExpressionFactory','$location',
function ($scope, postExpressionFactory,getExpressionFactory, $location) {
$scope.postNewExpression = function() {
$scope.results = postExpressionFactory.evaluate({'expression':$scope.expression});
console.log($scope.results.expression);
console.log($scope.results.result);
};
}]);
을 가지고 services.js
//post factory
myServices.factory('postExpressionFactory', ['$resource',
function ($resource) {
return $resource('../server.php/expression', {}, {
evaluate: {method: 'POST', headers: {'Content-Type': 'application/json'}, isArray: false}
});
}]);
에 공장을 가지고이 게시물 요청
<form>
<div class="row">
<div class="col-lg-12">
<div class="form-group">
<label class="control-label">Enter expression</label>
<div class="input-group">
<span class="input-group-addon">=</span>
<input class="form-control" type="text" id="expression" name="result" ng-model="expression" ng-required="true">
<span class="input-group-btn">
<button class="btn btn-default" type="button" ng-click="postNewExpression()">Calculate</button>
</span>
</div>
<h2>Results</h2>
<div class="list-group" ng-repeat="res in results">
<a class="list-group-item">
<h4 class="list-group-item-heading">{{res.expression}}</h4>
<h4 class="list-group-item-heading">{{res.result}}</h4>
</a>
</div>
</div>
</div>
</div>
</form>
에게 호출하는 HTML을
Angular가 잘 돌아 간다. 나는 json을 올바르게 만들지 못한다고 생각한다. mozilla-> network에서 이것을 실행하면 POST 요청을 한 것을 볼 수 있고 json respone 결과를 얻을 수있다. "7", expression : (2+ 5). 어떻게 결과를 얻을 수 있습니까? results.expression, results.result에서 7보다?
감사합니다, 그것은 일하고있어. 하지만 난 질문을 하나 더, 나는이 게시물 요청을 내가 서버에서 다른 종류의 대답을 할 때 json {식 : '5 + 7', 토큰 : 'a123'}, 지금이 토큰 값을 가져올 필요가 및 모양 토큰이 있으면 요청을받습니다. 여러 번 시도했지만 $ scope.expression.token에 액세스 할 수 없습니다. 이해한다면 어떻게 할 수 있습니까? 내 논리는 다음과 같습니다. if ($ scope.results.expressionId! == undefined) { $ scope.getNewExpression = function() {$ scope.results.push (getExpressionFactory.result ($ scope.results.expressionId)) ;};} –
(토큰이있는 경우 마지막 멤버를 pop해야한다고 가정) –