我有两个视图VIEW1和VIEW2。通常,如果直接访问,VIEW1不需要$ stateParams vars来运行。但是如果从VIEW2访问,我需要将$ stateParams vars从VIEW2传递给VIEW1。
app.controller('View1Ctrl', function($scope, $stateParams, $state) {
$scope.varView1 = $stateParams.view2Data.varView2;
)}
.state('app.view1', {
url: '/view1',
params: {view2Data: null },
views: {
'menuContent': {
templateUrl: 'templates/view1.html',
controller: 'View1Ctrl'
}
}
})
app.controller('View2Ctrl', function($scope, $stateParams, $state) {
$state.go('app.view1', {view2Data: {varView2: 'varView2 Value' } });
)}
问题是: 如果$ stateParams变量在VIEW1控制器中编码,如果直接访问VIEW1,这将创建$ stateParams变量未定义的问题。
我正在考虑VIEW1控制器中的某些内容,例如if SET ($scope.varView1 = $stateParams.view2Data.varView2;){ continue }
。
任何解决方案吗?
答案 0 :(得分:2)
状态配置params
对象允许您设置默认值,因此您应该使用类似
params: {
view2Data: {
varView2: null
}
}
至少那时,你没有得到"未定义的不是$stateParams.view2Data.varView2
的对象" 错误。