大家好,我试图从$http.get
方法获取响应,并将其附加到$scope
对象,但它表示未定义。经过一些研究和参考,找到了将数据分配给对象的方法。但现在面临的问题是使用ng-repeat
在视图中分配和使用。
请求所有人请指导我。
JS:
var self = $scope;
self.localnews = {};
$scope.nearme = function($scope) {
var lat = localStorage.getItem('lat');
var lon = localStorage.getItem('lon');
var request = $http.get("functions/functions.php?activity=getlocalnews&lat="+lat+"&lon="+lon).then(function (response) {
self = response;
return self;
});
request.then(function (data) {
self.localnews= (data.data)
console.log(self.localnews);
});
}
HTML视图:
<div ng-repeat="post in ---what goes here??---" class="span12" style="border: 1px solid lightgray;margin:0;position:relative;">
更新:
var self = $scope;
self.localnews = {};
$scope.nearme = function($scope) {
var lat = localStorage.getItem('lat');
var lon = localStorage.getItem('lon');
var request = $http.get("functions/functions.php?activity=getlocalnews&lat="+lat+"&lon="+lon).then(function (response) {
self.localnews = response.data;
return self.localnews;
});
request.then(function (data) {
self.localnews = (data);
console.log(self.localnews);
});
}
在视图中:appctrl是ctrl name。
<div ng-repeat="post in appctrl.localnews" class="span12" style="border: 1px solid lightgray;margin:0;position:relative;">
答案 0 :(得分:0)
在你的控制器中试试这个
$scope.nearme = function() {
var lat = localStorage.getItem('lat');
var lon = localStorage.getItem('lon');
$http.get("functions/functions.php?activity=getlocalnews&lat="+lat+"&lon="+lon).then(function (response) {
$scope.localnews = response.data;
console.log($scope.localnews);
});
};
然后像这样使用ng-repeat
<div ng-repeat="post in localnews" class="span12" style="border: 1px solid lightgray;margin:0;position:relative;">
其中localnews必须是一个数组。
答案 1 :(得分:0)
如果您使用controllerAs
语法,请使用此
var self = this;
self.localnews = {};
$scope.nearme = function($scope) {
var lat = localStorage.getItem('lat');
var lon = localStorage.getItem('lon');
var request = $http.get("functions/functions.php?activity=getlocalnews&lat="+lat+"&lon="+lon).then(function (response) {
self.localnews = response.data;
});
}
在HTML中:
<div ng-controller="appctrl as app">
<div ng-repeat="post in app.localnews" class="span12" style="border: 1px solid lightgray;margin:0;position:relative;">
</div>
</div>
如果您未使用ControllerAs
语法:
$scope.localnews = {};
$scope.nearme = function($scope) {
var lat = localStorage.getItem('lat');
var lon = localStorage.getItem('lon');
var request = $http.get("functions/functions.php?activity=getlocalnews&lat="+lat+"&lon="+lon).then(function (response) {
$scope.localnews = response.data;
});
}
在HTML中:
<div ng-controller="appctrl">
<div ng-repeat="post in localnews" class="span12" style="border: 1px solid lightgray;margin:0;position:relative;">
</div>
</div>