如果直接访问视图,则未定义$ stateParams变量?

时间:2016-02-22 02:43:35

标签: angularjs ionic-framework ionic-view

我有两个视图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 }

任何解决方案吗?

1 个答案:

答案 0 :(得分:2)

状态配置params对象允许您设置默认值,因此您应该使用类似

的内容
params: {
    view2Data: {
        varView2: null
    }
}

至少那时,你没有得到"未定义的不是$stateParams.view2Data.varView2的对象" 错误。