使用angular js从json文件中检索数据

时间:2014-07-18 19:48:58

标签: angularjs

使用Angular js,我想从远程位置的json文件中检索数据。这是我的代码。请告诉我,由于无法获取数据,我错过了什么。

我的观点

<body ng-controller='companyController as comctrl'>
    <div>
        <ul>
            <li ng-repeat="com in comctrl.companies" ng-bind="com.name"></li>
        </ul>
    </div>
</body>

我的控制器

app.controller('companyController', ['$http',
    function($http) 
    {
        this.companies = [];
        $http
            .get('https://dl.dropboxusercontent.com/u/28961916/companies.json')
            .success(function(data)
            {
                this.companies=data;
            });
    }
]);

JSON文件

{
    businesses: [
    {
        id: 3184,
        name: "Nintoreion Soft Pvt Ltd",
        status: 'Private',
        turnover: 500,
        domain: 'Software Technology'
    },
    {
        id: 3489,
        name: "Prandeious Solutions",
        status: 'Public',
        turnover: 300,
        domain: 'Software Technology',
    },
    // so on
]}

2 个答案:

答案 0 :(得分:0)

this没有引用回调中的控制器。尝试...

app.controller('companyController',['$http',function($http){
    var self = this;
    this.companies=[];
    $http.get('https://dl.dropboxusercontent.com/u/28961916/companies.json').success(function(data){
        self.companies = data;
    });
}]);

JSON也无效(属性需要双引号)。使用类似http://jsonlint.com/的内容来验证它。

答案 1 :(得分:0)

我会选择

app.controller('companyController', ['$scope', '$http',
    function($scope, $http) 
    {
        $scope.companies = [];
        $http
            .get('https://dl.dropboxusercontent.com/u/28961916/companies.json')
            .success(function(data) 
            {
                $scope.companies = data;
            });
    }
]);

使用$scope代替this