我正在使用AngularJS创建两个页面webapp。 我的Json文件是:
{
"data": [
{ "name": "bhav",
"id": 123
},
{"name": "bhavi",
"id": 1234
},
{"name": "bhavk",
"id": 1235
}
]
}
我的app.js(路由文件是):
myApp = angular.module('myApp', ['slickCarousel',
'ngRoute',
'myAppControllers',
'myAppServices','swipeLi'
]);
myApp.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/', {
templateUrl: 'partials/home-page.html',
controller: 'ProfileListCtrl',
}).
when('/profile/:typeofprofile', {
templateUrl: 'partials/profile-detail.html',
controller: 'ProfileDetailCtrl'
})
}]);
和我的第一页(home-page.html)在给定的格式中:
<div ng-repeat="data in data">
<a href="profile/myfriend">{{data.name}}</a>
</div>
和第二页(profile-details.html) 考虑到我正在使用http.get请求从控制器中的Json文件中提取数据,我想要那个 id的那个配置文件 。
所以请帮助我获取点击的个人资料的ID或名称,而不通过网址。
注意:我已经查看了ui-route链接:Angular ui router passing data between states without URL但我没有看到。
答案 0 :(得分:2)
正如您在评论中所述,您希望使用$state.go()
来传递您的数据。使用$state.go()
传递参数也非常简单。您需要在应用程序中注入ui.router
。我创建了2个局部视图来显示params的传递,其中 params 从header.html
传递到side.html
。
您的 JS 将如下所示:
var app = angular.module('nested', ['ui.router']);
app.config(function($stateProvider,$locationProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/");
$stateProvider.state('top', {
url: "",
templateUrl: "header.html",
controller: 'topCtrl'
})
.state('top.side', {
url: '/app/:obj/:name',
templateUrl: "side.html",
controller: 'filterCtrl'
})
});
app.controller('topCtrl', function($scope,$state) {
$scope.goItem = function(){
$state.go('top.side',{obj:441,name:'alex'});
};
});
app.controller('filterCtrl', function($scope,$state) {
console.log(JSON.stringify($state.params));
$scope.params = $state.params;
});
以下是工作 PLUNKER ,您可以在其中找到有关views
,controller
和script
的所需内容:
http://plnkr.co/edit/M1QEYrmNcwTeFd6FtC4t?p=preview
我提供了使用$stateParams
和ui-sref
传递$state.go()
的方法。但是,如果要在所有控制器之间共享数据。在这个问题中看到我的答案:
Share Data in AngularJs