2016-06-01 3 views
1

Я попытался реализовать угловой js $ state.go() с параметром. Но $ state.go() отлично работает без параметра. Но с параметром это не сработало. Я уже пробовал много примеров, но никак. Мне нужно отобразить параметр в представлении html. мое состояние провайдер,

$stateProvider 
    .state('home', { 
     url: '/', 
     views: { 
      '[email protected]': { 
      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> 

чем проблема.?

+0

Вы показываете состояние 'home' и пытаетесь перейти к' dash_home', который является совершенно другим состоянием, даже не дочерним состоянием 'home'. –

+0

home - это мое текущее состояние, а dash_home - это состояние, которое я хочу перенаправить – jicks

ответ

1

Я нашел свои ошибки. Правильный код,

$stateProvider 
    .state('home', { 
     url: '/', 
     views: { 
      '[email protected]': { 
      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}); 
    } 

}); 

спасибо всем.

2

Вы не можете использовать параметры непосредственно в HTML. Сначала вам нужно добавить его в область (или виртуальную модель, если вы ее используете), например.

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

И вы должны сделать это в контроллер состояния, что вы собираетесь, конечно, не в тех, где вы звоните $ state.go

+0

, пожалуйста, дайте мне пример.? – jicks

+0

Я не совсем уверен, что вы имеете в виду. Вы перенаправляетесь в состояние «dash_home». Поэтому, если в этом состоянии есть контроллер, вам просто нужно использовать пример из моего ответа там, чтобы сопоставить параметры состояния с областью. Проблема в том, что он угловой не может отображать данные, поскольку он не знает об этом. Вы должны сказать это, добавив его в область видимости. –

+0

Я не вижу, что вы вообще называете свою функцию, и, кроме того, ваше state.go использует состояние, которого не существует. Возможно, вы имели в виду только «дом»? В противном случае вам нужно будет добавить правильное состояние. –

0

Я думаю, вы не можете использовать объекты Титулы. Просто замените

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

к этому:

params: { 
     value:'' 
} 

, а также: $state.go('dash_home', {obj: {value:'admin'}}); к $state.go('home', {value:'admin'});

+0

Я пробовал это, но не работал. – jicks

+0

Не могли бы вы предоставить скрипку? –

+0

Вы шутите? Вы предоставили скрипту синтаксические ошибки и без каких-либо добавленных скриптов. Кроме того, вы используете '$ state.go ('dash_home')', но как я и @Alon Eitan писал: '$ state.go ('home')' –

Смежные вопросы