我的观众
<button type="submit" ng:click="sendviewer(vl.viewerid)" ></button>
我的控制器
$scope.viewerDetails = [];
var viewerid = [];
$scope.sendviewer = function(viewer){
var success = function(data)
{
for( var i = 0; i < 1; i++ )
{
var obj = data[i];
if(obj.viewerid != undefined) {
viewerid.push(obj.viewerid);
}
}
$scope.viewerDetails = viewerid;
}
viewerService.postViewer(viewer).success(success);
}
我的服务
return {
postViewer: function(viewer){
$location.path('/viewerdetails');
return $http({
method: 'POST',
url: 'api.php',
data: {
'view': viewer
},
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
});
}
}
我的返回数据在函数内存中可用,但是如何在函数外部访问该数据以便在我的视图中访问?如果我尝试{{viewerDetails.viewerid}}将显示空白。
答案 0 :(得分:1)
好吧,看起来for循环只是不必要的,实际上有点奇怪。
$scope.viewerIds = [];
$scope.sendviewer = function(viewer){
var success = function(data)
{
var obj = data[0];
if(obj.viewerid != undefined) {
$scope.viewerIds.push(obj.viewerid);
}
}
viewerService.postViewer(viewer).then(success);
}
您也不应该使用success
,因为它已被弃用。使用与then
的承诺语法。
这会将调用结果的id添加到$ scope.viewerIds数组中。
如果这是你想要的,那就不明确了。但对我来说它看起来像。
你确定data
就像你期望的那样吗?第一个元素是对象的数组。说实话,这也是一种奇怪的api。
然后在你的html中你可以循环数组来显示id:
<div ng-repeat="id in viewerIds"> ID: {{id}}</div>
答案 1 :(得分:0)
由于viewerid
是本地数组变量,因此存储在其中的数据在范围之外不可用。您应该将viewerid
存储在$scope
内。像
$scope.viewerid = [];
现在可以在DOM上访问它。