gpt4 book ai didi

controller - AngularJS - 按 ID 获取数据

转载 作者:行者123 更新时间:2023-12-03 23:25:08 25 4
gpt4 key购买 nike

我遇到了以下情况:
我得到了一些自定义标记和静态(非谷歌) map 。我使用以下代码显示(和过滤)标记:

<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>

我将其路由到成功显示 ID 的“dealer-details.html”:
  <div class="alldealermodal" ng-controller="DealerDetailsCtrl">      
<div ng-view></div>
</div>

使用此 Controller /路由:
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中获取所有数据。我怎样才能做到这一点?有人能给我一个提示吗?

我使用这个 Controller 从 json 中获取所有数据:
function DealerListCtrl($scope, $http) {
$scope.dealer = [];
$http.get('files/js/dealer.json').success(function(data) {
$scope.dealerall = data;
});
$scope.orderProp = 'id';
}

最佳答案

首先,你不需要设置ng-controller="DealerDetailsCtrl"dealer-details.html , 因为 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
};

});

在您需要访问经销商的 Controller 中,只需注入(inject) DealerService ,就像其他服务一样。要获取特定条目,只需迭代。

另一种可能性是使用 resolve房产位于 $routeProvider将经销商数据发送到 DetailController。

关于controller - AngularJS - 按 ID 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14111121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com