我正在Angular中构建一个http请求,$http并尝试使用响应中的数据返回来更新位于"$ scope"中的模型.当我从节点后端收到响应时,我正在设置'$ scope.data = data;' 在成功回调中.当我单步执行javascript时,我可以看到响应正确且状态代码存在.这是我正在尝试做的一个示例:
angular.module("Sample").controller('MainCtrl', ['$http', '$scope', function($http, $scope) {
this.testcall = function (url) {
$http.post(url).success(function (data, status) {
console.log(data);
$scope.data = data;
$scope.status = status;
console.log($scope.data);
}).error(function (data, status) {
console.log('failed');
$scope.response = 'failed call';
$scope.status = status;
});
};
}
Run Code Online (Sandbox Code Playgroud)
在我的html模板中,我在div中设置了控制器,我正在尝试显示该响应.
<div ng-controller="MainCtrl as main">
{{data}}
</div>
Run Code Online (Sandbox Code Playgroud)
我可以为数据设置一个值并使其显示在加载状态,但是当值更改时,它不会被重绘.据我所知,'$ http'导致'$ digest'被调用,应该重新绘制任何修改过的模型.
我正在使用SailsJS编写一个非常基本的HTTP请求.我从我正在调用的api中获取了我想要的数据,但我无法弄清楚如何将它从我的服务传递回控制器并最终使用正文中的数据响应请求.
这是我的控制器:
module.exports = {
retrieve: function(req, res) {
var output = AccountService.retrieveAccountInfo();
console.log(output);
return res.send(output);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我正在打电话的服务.
module.exports = {
retrieveAccountInfo: function() {
var http = require('http');
var options = {
host: 'localhost',
port: 8280,
path: '/sample/account?id=1',
method: 'GET',
headers: {
'sample': 'header'
}
};
var req = http.request(options, function(res) {
var data = '';
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers) + '\n\n');
res.setEncoding('utf8');
res.on('data', function(chunk) {
console.log('BODY: ' + chunk);
data += chunk;
});
res.on('end', …Run Code Online (Sandbox Code Playgroud)