Javascript ng单击:在页面之间传递数据selectedItem angularjs
因此,我可以选择列表中的项目,但目的是在单击时将所选列表的数据传递到另一个/route中。我需要一些帮助,因为我真的不知道如何继续请。如果你知道朋克的例子,请毫不犹豫地告诉我:) 下面是我的选项建议控制器Javascript ng单击:在页面之间传递数据selectedItem angularjs,javascript,angularjs,Javascript,Angularjs,因此,我可以选择列表中的项目,但目的是在单击时将所选列表的数据传递到另一个/route中。我需要一些帮助,因为我真的不知道如何继续请。如果你知道朋克的例子,请毫不犹豫地告诉我:) 下面是我的选项建议控制器 app.controller('optionSuggestionController', ['$scope', '$http', function($scope, $http) { $http.get('suggestions.json') .then(function(r
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;
}
}])
下面是我的数据列表
<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>
我认为您可以使用提供程序“$rootScope”
$rootScope.selected = suggestion;
您可以在其他控制器中访问此数据
希望有帮助。您可以使用服务或工厂在控制器之间共享数据,我用您的代码创建了一个工厂,并在要使用的控件上调用它
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;
});
我有两个建议:
- 您可以使用提供程序“$rootScope”
$rootScope.selected=建议$rootScope.selected = suggestion;
- 或者通过提供程序“$route”通过url获取参数 var suggestion=$route.current.params.suggestion
sugestion
对象是什么样子的,但我想如果您使用状态服务,您可以在两个控制器之间共享相同的服务,然后通过状态服务访问单击的sugestion:)谢谢@Amir,这正是我需要的,我将致力于此