加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

controller – AngularJS – 按ID获取数据

发布时间:2020-12-17 07:00:01 所属栏目:安全 来源:网络整理
导读:我遇到以下情况: 我有一些自定义标记和静态(非谷歌)地图.我使用以下代码显示(并过滤)标记: div ng-controller="DealerDetailsListCtrl" a ng-click="showdetails=!showdetails" href="#/dealer/{{marker.id}}" class="marker" style="left:{{marker.left}}
我遇到以下情况:
我有一些自定义标记和静态(非谷歌)地图.我使用以下代码显示(并过滤)标记:

<div ng-controller="DealerDetailsListCtrl">
    <a ng-click="showdetails=!showdetails" href="#/dealer/{{marker.id}}" class="marker" style="left:{{marker.left}};top:{{marker.top}}" ng-repeat="marker in dealer|zipFilter:zipCodeLookup:countryLookup"></a>
</div>

我将它路由到“dealer-details.html”,在那里我成功显示了ID:

<div class="alldealermodal" ng-controller="DealerDetailsCtrl">      
    <div ng-view></div>
  </div>

使用此控制器/路由:

app.config(['$routeProvider',function($routeProvider) {
  $routeProvider.
      when('/dealer/:id',{templateUrl: 'files/tpl/dealer-details.html',controller: DealerDetailsCtrl}).
      otherwise({redirectTo: '/'});
}]);

function DealerDetailsCtrl($scope,$routeParams) {
  $scope.id = $routeParams.id;
}

由于我对angularJS很新,我想知道,我怎样才能通过ID获取所有数据.

我的json文件如下所示:

[
{
    "id": "2","name": "Laden Dortmund","strasse": "Unionstr.","hausnr": 1,"plz": "45525","stadt": "Dortmund","land": "DE","url": "http://www.google.de","tel": "0234-234568","email": "lade@indortmund.de","left": "200px","top": "300px","lowRange":60000,"highRange":70000
},{
    "id": "1","name": "Laden Unna","strasse": "Berlinerstr.","hausnr": 134,"plz": "78654","stadt": "Unna","land": "AT","url": "http://www.bing.de","tel": "0234-11223344","email": "lade@inunna.de","left": "250px","top": "500px","lowRange":40000,"highRange":50000
}
]

等等….我想从所选的id中获取所有数据.我怎样才能做到这一点?有人会给你一个暗示吗?

我使用这个控制器从json获取所有数据:

function DealerListCtrl($scope,$http) {
  $scope.dealer = [];
  $http.get('files/js/dealer.json').success(function(data) {
    $scope.dealerall = data;
  });
  $scope.orderProp = 'id';
}

解决方法

首先,您不需要在dealer-details.html中设置ng-controller =“DealerDetailsCtrl”,因为ng-view将负责这一点.

其次,您应该提供service来检索您的数据:

var app = angular.module('myApp',[]);

app.factory('dealerService',function($http) {
   return {
      getDealerList function() {
         var dealers = {
            list : []
         };
         // TODO add possible caching via $cacheFactory
         $http.get('files/js/dealer.json').success(function(data) {
            dealers.list = data;
         });
         return dealers;
      },// other functions
   };

});

在您需要访问经销商的控制器中,只需注入DealerService,就像其他服务一样.要获取特定条目,只需迭代即可.

另一种可能性是使用$routeProvider上的resolve属性将经销商数据发送到DetailController.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读