在$ http

时间:2017-11-24 16:21:45

标签: angularjs

我正在尝试加载本地json文件并将数据输入到$ scope变量。

myApp.controller('myController', ['$scope', '$http', function ($scope, $http) {

 $scope.menu = function () {
        $http.get('file.json')
            .then(function (data) {
                          $scope.menu=data.data.menu;  

            });
  };

我还试过返回data.data.menu。但菜单没有更新。

尝试在页面加载时调用此方法。

$scope.menu();

在html中:

<body ng-app="myApp">
    <div ng-controller="myController">
    <ul class="nav navbar-nav" ng-repeat="item in menu">
    // other stuffs

这里有什么问题。

我只需将以下代码直接放在控制器中,但仍然无效。

 $http.get('file.json')
            .then(function (data) {
                          $scope.menu=data.data.menu;  

            });

1 个答案:

答案 0 :(得分:1)

试试这个:

myApp.controller('myController', [
    '$scope',
    '$http',
    function(
        $scope,
        $http
    )
    {
        $scope.menu = [];

        $scope.getItems = function()
        {
            $http.get('file.json')
            .then(function(response)
            {
                $scope.menu = response.data.menu;
            });
        };

        $scope.getItems();
    }
]);

此外,您需要确保file.json从Web服务器作为静态文件提供,并具有以下结构:

{
    "menu": []
}