簡體   English   中英

Angular js $ state.go,參數不起作用

[英]Angular js $state.go with parameter not working

我試圖用參數實現angular js $ state.go()。 但$ state.go()在沒有參數的情況下工作正常。 但是使用參數它不起作用。 我已經嘗試了很多例子,但沒辦法。 我需要在html視圖中顯示參數。 我的州提供者是,

  $stateProvider
    .state('home', {
        url: '/',
        views: {
          'content@': {
            templateUrl: 'content.html',
            controller: 'dashCtrl'
          }
        },
    params: {
        obj: {
          value:''
        }
    }
      });   

和控制器是,

     dashboard.controller('dashCtrl', function ($scope, $http, $state, $stateParams){
               $state.go('dash_home', {obj: {value:'admin'}});
});

我的div是

<div>
    <h1>welcome : {{value}} || {{obj.value}}</div>

問題是什么。?

您不能直接在HTML中使用參數。 首先,您必須將其添加到范圍(或虛擬模型,如果您使用它),例如

$scope.obj = $state.current.params.obj

而且你必須在你要去的州的控制器中這樣做,而不是那些你稱之為$ state.go的州。

我發現了自己的錯誤。 正確的代碼是,

  $stateProvider
    .state('home', {
        url: '/',
        views: {
          'content@': {
            templateUrl: 'content.html',
            controller: 'dashCtrl'
          }
        },
    params: {
          value:''
    }
      });

控制器是,

dashboard.controller('mycontroller',function($scope, $http, $state, $stateParams){

    $scope.user=$state.params.registerData;

    $scope.redirect=function()
    {
      $state.params.registerData='mycontent';

      $state.go('dash_home', {registerData:$state.params.registerData});
    }

});

謝謝大家。

我想你不能在params中使用對象。 只需更換

params: {
    obj: {
      value:''
    }
}

對此:

params: {
      value:''
}

還有: $state.go('dash_home', {obj: {value:'admin'}}); $state.go('home', {value:'admin'});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM