СРЕДНИЙ стек — передача переменных из представления html в ng-контроллер

#angularjs #node.js #express #ng-controller

#angularjs #node.js #выразить #ng-контроллер

Вопрос:

Я разработал страницу профиля, которая содержит несколько модулей, таких как, скажем: личная информация и друзья.

Каждый модуль представляет собой ng-контроллер, который выполняет вызовы базы данных, но я хотел бы иметь возможность передавать идентификатор пользователя, для которого отображается профиль, чтобы вызовы базы данных были динамическими и извлекали данные, относящиеся к этому пользователю.

Как я должен это делать?

Заранее спасибо,

Мануэль

* Уточнение * Я использую express.js который обрабатывает аутентификацию и управление сеансами (с паспортом). Как только пользователь входит в систему, он попадает на страницу «/ profile».

Я не особенно хотел обрабатывать маршрутизацию с нескольких сторон, поэтому я решил обрабатывать всю маршрутизацию на стороне узла. Итак, я создал маршруты для вызовов get и post.

Теперь, когда пользователь переходит в «/ profile», я бы хотел, Чтобы различные модули (личная информация, друзья и т. Д.) Обновлялись в зависимости от подключенного пользователя.

Мне удалось выполнить нединамический вызов :

 app.controller('UserInfo', [
'$scope', '$http',
function($scope, $http) {
    $http.get("/api/users/info/1")
    .then(function(response) {
        $scope.user = response.data.local;      
    });
}
]);
  

Но это не зависит от контекста. Итак, я хотел бы теперь создавать вызовы get таким же образом, но иметь возможность передавать идентификатор (или любой другой правильный способ) пользователя для восстановления его данных.

Есть ли у вас какие-либо рекомендации относительно того, как действовать дальше? Любая ссылка на учебные пособия о том, как справиться с этим в многостраничном приложении MEAN? Большинство документов, которые я нашел в Интернете, относятся к одностраничным приложениям и не отвечают моим потребностям. Спасибо!

Комментарии:

1. используйте сеансы на стороне сервера.

2. Вы можете использовать ngStorage для хранения данных, связанных с пользователем, в локальном хранилище, которое должно быть вызвано один раз. ПРИМЕЧАНИЕ: Не храните пароль в своем локальном хранилище. Например: если пользователь успешно вошел в систему, сохраните его в localstorage и удалите при выходе пользователя из системы.

3. Как ваш контроллер вызывает базу данных? Используете ли вы вызов Rest с $resource?

Ответ №1:

Если ваш пользовательский интерфейс обрабатывает, кто я, вы получите некоторое нарушение безопасности. Ваш сервер должен знать, кто подключен. (с помощью файла cookie или чего-то подобного).

Вот пример: https://blog.nodejitsu.com/sessions-and-cookies-in-node /

Комментарии:

1. На самом деле я даже не уверен в том, как я создаю приложение.

2. Прошу прощения за мой предыдущий комментарий, я случайно нажал enter… Я добавлю некоторую точность в свой вопрос

3. Тот же ответ, вам не нужно ничего передавать angular, поскольку ваш сервер может справиться с этим с помощью HTTP-заголовка

4. Спасибо, Стив, но я не вижу никаких угловых в вашей ссылке. Вы предлагаете мне получить идентификатор пользователя из файла cookie, хранящегося в заголовке HTTP? Правильно? Должен ли я использовать для этого Angular localStorage, как упоминал Маниш?