现在我需要使用$ state.go来切换视图,但我需要传递一些数据。 (我更愿意传递一个对象)我在网上搜索了一些帮助,但没有看到一个符合我问题的好答案。这是我的代码:
state('editreport', {
url: '/editreport/:reports',
templateUrl: 'submitter/editreport/editexpensesreport.html'
})
在我的Ctr1中:
$scope.goeditpage = function(report){
$state.go('editreport',{'reports':report});
}
当用户点击goeditpage时。将它们带到'editreport'页面。在editreport页面中,我有另一个名为'ctr2'的控制器,我尝试访问这样的数据:
controller('Ctr2',
[ '$scope','$stateParams', function($scope,$stateParams) {
$scope.lin = $stateParams.reports;
console.log($scope.lin);
} ])
但没有成功,任何想法?另一个问题是如何使数据可选?因为用户可能会输入数据,但始终会将他们带到此页面。
答案 0 :(得分:0)
执行此操作的方法是通过查询字符串传递该数据,这是$state.go('state-name', {name:'fizz', tag: 'stackoverflow'})
关于你的州,它需要像这样:
$stateProvider.state('editreport', {
url: '/editreport/:reports?name=&tag',
templateUrl: 'submitter/editreport/editexpensesreport.html'
})
您将需要检索该信息,您可以使用$location,如下所示:
var myParams = $location.search();
//$location.search() returns an object that will look like this myParams = {name: 'fizz', tag: 'stackoverflow'}
复制参数后,您可以从网址中删除它们:
$location.search({});