Используйте данные NodeJS в Angular

0

У меня есть следующий маршрут:

сервер

app.get('/claim/:id', compact.js(['global']), indexController.claim);
module.exports.claim=function(req,res){
    res.render('claim-note', { title: 'claim', noteId:req.params["id"]});
};

Теперь я хочу использовать переменную noteId внутри моего углового контроллера. Подобно:

клиент

controller("NoteController", ["$scope", "$http", function($scope, $http){
   $scope.noteId = {{noteId}};
}

Как я могу это сделать? Идея состоит в том, что пользователи используют прямую ссылку, например, заявку /866317, поэтому она уже знает, когда страница открыта.

  • 0
    Где остальная часть вашего углового кода? HTTP-запрос, контроллер ... и т. Д.
Теги:
swig-template

2 ответа

3

Обычно я использую следующий способ решения этой проблемы:

controller("NoteController", ["$scope", "$http", function($scope,
$http){
   $scope.setNoteId = function(noteId) {
      $scope.noteId = noteId;
   }
}

В html:

<body ng-controller="NoteController" ng-init="setNoteId({{noteId}})">
...
</body>
  • 0
    ОП спросил о получении переменной из node.js в angular. не как установить переменную на угловой и использовать ее только там
  • 1
    Да. Я уже ответил на этот вопрос. Если вы используете этот метод, вы можете установить переменную angular, получив переменную из node.js, используя директиву ng-init. Я предполагаю, что переменная {{noteId}} исходит из node.js.
Показать ещё 5 комментариев
0

Решено через скрытый div в моем html

<div id="noteId" class="hidden">#{noteId}></div>

и в моем угловом контроллере

$scope.id = $('#noteId').text;
  • 1
    используйте Angular JQuery Lite внутри углового кода, например angular.element('#nodeId').text()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню