我必须为大学课程做一个简单的CityBike申请。 为了完成这项任务,我给用户提供了在三个城市之间进行选择的可能性,并展示了目前所有的免费自行车和空城市自行车点。通过service.js,我包含了城市自行车的api。
我现在有两个视图(start.html& citybikes.html),我想在下拉菜单中选择三个城市之一,然后点击按钮将其传递给citybikes.html-controller。 有没有简单的方法来实现这个目标?
以下是start.html代码的主要部分:
a->p
这是控制器:
<label class="item item-input item-select">
<div class="input-label">
Stadt auswählen
</div>
<select ng-model="choose.name">
<option ng-repeat= "city in citystart"> {{city.CityName}}</option>
</select>
</label>
<p> anzeige? {{choose.name}}</p>
<!--BUTTON-->
<a ng-if="choose.name"
class="button button-block button-positive"
ui-sref="tab.citybike({param1: choose.name})">
CityBikes anzeigen
</a>
最后是我的app.js的摘录,用于路由视图:
angular.module('starter.controllers', [])
.controller('Start', function($scope, $stateParams, cities_overview) {
//$scope.citystart = cities_overview.getCities();
})
.controller('CityBikeController', function($scope, $stateParams, CityBikeParis, CityBikeHamburg, CityBikeLondon, cities_overview, chosencities) {
$scope.chosenVar = "";
$scope.chosenVar = $stateParams.param1;
$scope.SumFree=0;
$scope.SumEmpty=0;
var liste = CityBikeHamburg.getList();
switch($scope.chosenVar){
case "Paris":
liste = CityBikeParis.getList();
break;
case "Hamburg":
liste = CityBikeHamburg.getList();
break;
case "London":
liste = CityBikeLondon.getList();
break;
}
liste.then(function(list) {
$scope.stationlist = list.data.network.stations;
for(var i=0; i<$scope.stationlist.length; i++){
$scope.SumFree += $scope.stationlist[i].free_bikes;
$scope.SumEmpty += $scope.stationlist[i].empty_slots;
}
})
})
如果有人能帮助我,我将非常感激! :)
电贺, 托马斯
答案 0 :(得分:0)
您可以在状态参数中传递参数。
路由:
$stateProvider
.state('tab.citybike', {
url: '/citybike/:param1',
views: {
'tab-citybike': {
templateUrl: 'templates/citybike.html',
controller: 'CityBikeController'
}
},
...
}
控制器:
var param = $stateParams.param1; //get param1 value.
Html:
ui-sref="tab.citybike({param1: choose.name})"