我现在有这个网站- http://dev.5874.co.uk/scd-data/,在那里我有一个下拉列表,它显示来自WP的结果,我正在通过AngularJS进行操作。
它目前组合了两组结果,因为它们是单独的URL的,结果在自定义post类型中的类别中,所以如果两个帖子在所选的相同类别中被“标记”,它们会显示两次。我需要一个方法来组合这两组结果,但只显示其中一个帖子-我希望这是有意义的。我对API数据和AngularJS非常陌生,我认为有一种更简单的方法可以做到这一点。任何帮助都将不胜感激。下面是我的代码片段,以展示它当前的工作方式。
提前感谢!
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
<style>
.desc {display: none;}
</style>
<script type="text/javascript">
$(function(){
$('.selectOption').change(function(){
var selected = $(this).find(':selected').text();
//alert(selected);
$(".desc").hide();
$('#' + selected).show();
}).change()
});
</script>
<script>
var app = angular.module('myApp', []);
app.controller('northWestCtrl', function($scope, $http) {
var url = 'http://scd.blaze.wpengine.com/wp-json/posts?type=listings&filter[listing_area]=northwest';
$http.get(url).then(function(data) {
$scope.data = data.data;
});
});
</script>
<select class="selectOption">
<option>Search by Region</option>
<option>NorthWest</option>
<option>NorthEast</option>
<option>Midlands</option>
<option>EastAnglia</option>
<option>SouthEast</option>
<option>SouthWest</option>
<option>Scotland</option>
<option>Wales</option>
<option>NorthernIreland</option>
<option>ChannelIslands</option>
</select>
<div id="changingArea">
<body ng-app="myApp">
<div id="NorthWest" class="desc">
<div ng-controller="northWestCtrl">
<div ng-repeat="d in data">
<h2 class="entry-title title-post">{{d.title}}</h2>
<img src="{{d.acf.logo}}">
<div id="listing-contact">Contact: {{d.acf.contact}}, {{d.acf.position}}</div>
<div id="listing-address-1">
{{d.acf.address_1}}, {{d.acf.address_2}} {{d.acf.address_3}} {{d.acf.town}} {{d.acf.county}} {{d.acf.postcode}}
</div>
<div id="listing-phone">Telephone: {{d.acf.telephone}}</div>
<div id="listing-mobile">Mobile: {{d.acf.mobile}}</div>
<div id="listing-email">Email: {{d.acf.email}}</div>
<div id="listing-website">Website: <a href="{{d.acf.website}}">{{d.acf.website}}</a></div>
<div id="listing-established">Established: {{d.acf.established}}</div>
<div id="listing-about">About: {{d.acf.about}}</div>
<div id="listing-mailingaddress">Mailing Address: {{d.acf.mailing_address_}}, {{d.acf.mailing_address_2}}, {{d.acf.mailing_address_3}}, {{d.acf.mailing_town}}, {{d.acf.mailing_county}}, {{d.acf.mailing_postcode}}</div>
<div id="listing-directions">Directions: {{d.acf.directions}}</div>
<div id="scd-link"><a href="{{d.link}}">View on The Shooting Club Directory</a></div>
</div>
</div>
</div>
</body>
</div>下面是一个工作代码pen - http://codepen.io/anon/pen/yePYdq
发布于 2016-01-22 05:59:20
changes是一个很好的JavaScript前端框架供您选择,您已经有了一个很好的开端,但是可以做很多更改。为了更容易地完成以下工作,我做了一些建议的修改。
有关所有更改,请参见此CodePen。
看起来您已经掌握了ng-重复的概念,但是在您的视图和控制器中肯定有很多重复的HTML和JS,所以让我们看看是否可以做得更好。
希望这能让您了解我们如何更好地利用ng-重复+ 干的 :)
整个CodePen都在这里。
https://stackoverflow.com/questions/34809321
复制相似问题