2016-07-19 12 views
0

Я передаю значение через параметр функции в представлении контроллера. Затем я сохраняю это значение в $ scope. Затем я пытаюсь получить одно и то же значение через область видимости, но на другой странице html. Но значение не доступно. Я использую UI-маршрутизатор для маршрутизации. Кто-нибудь может рассказать, что может быть причиной этого?Передача данных из вида в контроллер angularjs

это первая страница, с которой объект obj.roleId передается в функцию openwindow1 на контроллер.

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
</head> 
<body> 
    <table class="table"> 
     <thead align="center" class="thead-inverse"> 
      <tr> 
       <th> 
        Role Name 
        <div class="getSortClass('roleName')"></div> 
       </th> 
       <th> 
        Role ID 
        <div class="getSortClass('roleID')"></div> 
       </th> 
       <th>Action</th> 
      </tr> 
     </thead> 
     <tbody> 
      <tr align="center"> 
       <td>{{obj.roleName}}</td> 
       <td>{{obj.roleID}}</td> 
       <td><button class="btn btn-primary">Edit 
       User</button><button class= 
       "btn btn-primary">Delete</button></td> 
      </tr> 
     </tbody> 
    </table> 
</body> 
</html> 

и этот контроллер. Я храню значение в $ scope.roleIdk:

.controller('UserRoleEdit', ['$compile', '$scope', '$window', 
    function($compile, $scope, $window) { 
     $scope.openWindow1 = function(roleID) { 
      $window.open(
       'http://localhost:9000/#/homepage/userRoleEdit', 
       'User Role 
Edit', 
       'width=1300,height=1000'); 
      $scope.roleIDk = roleID; 
      alert($scope.roleIDk); 
     }; 
    } 

]);

Наконец я пытаюсь получить доступ к нему в другой точке зрения HTML:

{{}} roleIDk

Но я не могу получить доступ к нему.

+3

Трудно помочь, если мы не можем видеть ваш код :) –

+0

Я добавил код. Пожалуйста, взгляните на это. – darkknight

ответ

0

Если вы делитесь им между представлениями, область будет отличаться, поэтому все, что вы добавляете в область просмотра, не будет присутствовать в другом.

Вы можете сохранить его в Сервисе. Сервисы singleton, поэтому они будут доступны во всех ваших представлениях.

Вы также можете сохранить его в локальном хранилище браузера.

В вашем сценарии вы можете передать его в качестве параметра на URL, хотя:

$window.open('http://localhost:9000/#/homepage/userRoleEdit/' + roleID, User Role Edit', 'width=1300,height=1000'); 

Вы можете использовать $routeParams службы в другом контроллере представления для доступа к нему.

+0

его будет использоваться много раз. так как можно хранить ценности? и как они будут удалены, если они не используются? Благодарим за помощь. – darkknight

+0

Возможно, вы хотите использовать для этого URL. См. Мое редактирование – Juan

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