如何使用角度JS中的$ Routeparams从json文件中检索数据

时间:2017-05-23 07:43:51

标签: javascript jquery angularjs json

enter image description here

我面临使用$ routeparams检索数据的问题,我将解决我的问题

/ 重新定位网址以重定向 /

  console.log($routeParams);
  console.log($routeParams.json_url);

    $.getJSON("./api-data/"+$routeParams.json_url, function(json){
        $scope.data = json;
         console.log('JSON--',$scope.data);
       $scope.processdata();
  });

/ 重新定位网址以重定向 /

这是我试图获取数据的方式,但当我安慰它时,$ routeparams有数据 - >它有需要的网址 但当我与“json url”连接时,它显示“无法加载资源:服务器响应状态为404(未找到)”和控制台中的“未定义”

我正在分享我的app.js

app.js

App.config(['$routeProvider',function($routeProvider, $routeParams) {

            $routeProvider

    .when('/base-product/:json_url?', {
                    templateUrl :'templates/base_product.html',
                    controller  :'BaseProductController'
                })      

我的menu.html

这是当我点击此菜单中的特定链接时我应该具有的菜单,它应该动态地重定向到关联的json文件

<ul id="submenu-2" class="collapse" >
                            <span ng-repeat="item in itemDetails">
                            <li><a href="#base-product?{{item.path}}" > {{item.title}}</a></li>
                            </span>

                        </ul>

我的action.json看起来像这样

[

   {
      "title":"View",
      "path":"actions/view.json",
      "urlpath":"view?segment=view",
      "apiPath":"api/view",
      "methodType":"post"

   },

    {
       "title":"Add",
      "path":"actions/add.json",
      "urlpath":"view?segment=add",
      "apiPath":"api/add",
      "methodType":"post"

   },

]

我写了一个工厂来从json文件(action.json)

获取数组值
App.factory('itemsFactory', ['$http', function($http){
  var itemsFactory ={
    itemDetails: function() {
      return $http(
      {
        url: "api-data/action.json",
        method: "GET",
      })
      .then(function (response) {
        return response.data;
        });
      }
    };
    return itemsFactory;

}]);


App.controller('SidenavItems_controller', ['$scope', 'itemsFactory', function($scope, itemsFactory){

    console.log("Loading json array name is working fine and tested in console")
  var promise = itemsFactory.itemDetails();

    promise.then(function (data) {
        $scope.itemDetails = data;
        console.log(data);
    });
    $scope.select = function(item) {
      $scope.selected = item;
    }
    $scope.selected = {};
}]);

提前帮助我..谢谢

1 个答案:

答案 0 :(得分:0)

您的网址参数错误,您不需要使用'?'标记。将其更改为

查看

<li><a href="#base-product/{{item.path}}" > {{item.title}}</a></li>

的js

.when('/base-product/:json_url', {...}