AngularJS:使用$ state.go()将对象传递到某个状态

时间:2016-05-25 12:56:08

标签: javascript angularjs angular-ui-router

我正在尝试将User-Agent: * Allow: /search/ Disallow: /search/* 的对象传递到另一个状态,但$state.go()未填充。 我已经尝试了在web和stackoverflow上找到的所有东西,但没有一个对我有用。提前感谢您的帮助。

这是代码:

$stateParams
MyApp.config(function($stateProvider, $urlRouterProvider){
    $stateProvider.state('productList', {
      views:{
        "main_view":{
          templateUrl: 'pages/productList.html',
          controller: 'productListController'
        },
        "second_view":{}
      }
  });
  
  $stateProvider.state('productDetail', {
      views:{
        "main_view":{
          templateUrl: 'pages/productDetail.html',
          url:'/productDetail',
          params:{
          productObj: null
        },
          controller: 'productDetailController',
        },
        "second_view":{}
      }
  });
  
}
MyApp.controller('productListController',function($state,$scope,$http, $window){
    $http
    .get('api/item/index')
    .then(function (response) {
      $scope.items = response.data;
    });
    $scope.showProductDetails = function(argItem){
        console.log(argItem); // will show the argItem object in logs 
        $state.go('productDetail',{productObj:argItem}); // here is the problem
}
});
MyApp.controller('productDetailController',function($stateParams,$state,$scope){
  console.log($stateParams);   //Empty
  console.log($state.params)   //Empty
});
      

1 个答案:

答案 0 :(得分:3)

view 属于state,但属于 $stateProvider.state('productDetail', { // this, state level, is a right place for params params:{ productObj: null }, views:{ "main_view":{ templateUrl: 'pages/productDetail.html', url:'/productDetail', // this is wrong place // params:{ // productObj: null // }, controller: 'productDetailController', }, "second_view":{} } });

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_top"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="@color/action_bar_bkgnd"
app:theme="@style/ToolBarTheme" >


 <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Toolbar Title"
    android:layout_gravity="center"
    android:id="@+id/toolbar_title" />


</android.support.v7.widget.Toolbar>