将变量赋给 JSON Angular

6
如何将变量赋值给JSON的“name”?
JSON“names”对象
[
    { "name": "John", "age" : "12" },
    { "name": "Ben", "age" : "15" },
    { "name": "Jason", "age" : "18" },
    { "name": "Billy", "age" : "11" }
]

Angular服务和控制器

var app = angular.module('app', []);
    app.service('service', function($http, $q){
        var deferred = $q.defer();

        $http.get("jsonfile.json").then(function(data){
            deferred.resolve(data);
        });

        this.getNames = function(){
            return deferred.promise;
        }
    });
    app.controller('secondCtrl', function($scope, service){
        var promise = service.getNames();
        promise.then(function(data){
            $scope.names = data.data;
            console.log($scope.names);

        });
});

我在控制器中尝试的内容:

var name = names.name;

然后我在HTML中尝试使用ng-repeat {{name}},但它没有起作用。


$scope.names = data; console.log($scope.names.name)$scope.names = 数据; console.log($scope.names.name) - MMK
就像你在 secondCtrl 中所做的那样:使用 promise.then(...) 是正确的方式。但是,在传递给 then() 的回调之外的任何地方都是无用的,因为服务没有完成检索数据。 - Mouradif
1个回答

3
你可以使用ng-repeat在HTML中循环遍历你的names对象。
如果你的数组是:
$scope.names = [
    { "name": "John", "age" : "12" },
    { "name": "Ben", "age" : "15" },
    { "name": "Jason", "age" : "18" },
    { "name": "Billy", "age" : "11" }
];

您可以使用以下代码显示names.name
<div ng-repeat="n in names">{{n.name}}</div>

是的,我知道可以使用ng-repeat="n in names"来显示names.name的名称。 - bafix2203
1
你在原始帖子中说:“然后我尝试在HTML ng-repeat {{name}} 中,但它没有起作用。”。那是什么意思? - Mouradif

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接