如果直接访问视图,则未定义 $stateParams 变量?
$stateParams variable not defined if the view is accessed directly?
我有两个视图 VIEW1 和 VIEW2。如果直接访问,通常 VIEW1 不需要 $stateParams 变量来运行。但是,如果从 VIEW2 访问,我需要将 $stateParams 变量从 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 }
。
有什么解决办法吗?
状态配置 params
对象允许您设置默认值,因此您可能应该使用类似
的东西
params: {
view2Data: {
varView2: null
}
}
至少到那时,$stateParams.view2Data.varView2
.
不会出现 "undefined is not an object" 错误
我有两个视图 VIEW1 和 VIEW2。如果直接访问,通常 VIEW1 不需要 $stateParams 变量来运行。但是,如果从 VIEW2 访问,我需要将 $stateParams 变量从 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 }
。
有什么解决办法吗?
状态配置 params
对象允许您设置默认值,因此您可能应该使用类似
params: {
view2Data: {
varView2: null
}
}
至少到那时,$stateParams.view2Data.varView2
.