Передача данных из представления в контроллер angularjs

javascript angularjs angularjs-directive

99 просмотра

1 ответ

131 Репутация автора

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

это первая страница, с которой 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

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

Автор: darkknight Источник Размещён: 19.07.2016 08:33

Ответы (1)


0 плюса

3340 Репутация автора

Решение

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

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

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

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

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

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

Автор: Juan Размещён: 19.07.2016 08:47
Вопросы из категории :
32x32