所以,我能够选择列表中的项目,但目的是在我点击它时将所选列表的数据传递到另一个/路由中。我需要一些帮助,因为我真的不知道如何继续。如果你知道punker的例子,请不要犹豫告诉我:)。
Bellow是我的选项促销控件
app.controller('optionSuggestionController', ['$scope', '$http', function($scope, $http) {
$http.get('suggestions.json')
.then(function(res){
$scope.suggestions = res.data;
});
$scope.setMaster = function(suggestion) {
$scope.selected = suggestion;
}
$scope.isSelected = function(suggestion) {
return $scope.selected === suggestion;
}
}])
Bellow是我的数据列表
<ul class="list-holder">
<li ng-repeat="suggestion in suggestions" ng-class="{active : isSelected(suggestion)}">
<a ng-click="setMaster(suggestion)">{{suggestion.fromto}}</a>
</li>
</ul>
贝娄是我的建议。杰森
[{ "fromto": "Dublin to London", "img": "http://placekitten.com/100/100" },
{ "fromto": "Dublin to Paris", "img": "http://placekitten.com/100/100" },
{ "fromto": "Dublin to Mexico", "img": "http://placekitten.com/100/100" }]
答案 0 :(得分:2)
我认为您可以使用提供商'$ rootScope'。
$rootScope.selected = suggestion;
您可以在其他控制器中访问此数据。
希望它有所帮助。
答案 1 :(得分:1)
我有两点建议:
您可以使用提供商&#39; $ rootScope&#39;。
$ rootScope.selected = suggestion;
或者通过提供商获取param&#39; $ route&#39;。
var suggestion = $ route.current.params.suggestion;
答案 2 :(得分:0)
您可以使用服务或工厂在控制器之间共享数据,我使用您的代码创建一个工厂并在控件上调用它来使用。
app.controller('optionSuggestionController', function ($scope, $filter, $timeout, $timeout, $http, testFactory) {
testFactory.get(function (resp) {
console.log(resp);
$scope.suggestions = resp;
});
});
app.factory('testFactory', function ($http) {
var databaseFactory = {};
databaseFactory.get = function (callback) {
return $http.get('suggestions.json').then(function (response) {
databaseFactory.returnedData = response.data;
callback(databaseFactory.returnedData);
});
}
return databaseFactory;
});