Как вставить переменную из angularJS в строку в шаблоне jade (node.js)

0

Если у меня есть какое-то значение из углового $scope.id = '123', как я могу использовать его в шаблоне jade в node.js? Я хотел бы использовать его как часть ссылки.

p
   | {{id}} // It does work...

form(name="Remove", action="/cam/{{id}}_method=DELETE", method="post")
// ...but it doesn't
      button(type='submit')
           | ready

3 ответа

2

При использовании Jade вы можете использовать оператор != для кодирования unescape HTML.

form(name="Remove", action!="/cam/{{id}}_method=DELETE", method="post")

Однако это может привести к проблемам интерполяции. Поэтому я предлагаю вам иметь функцию в контроллере, например

$scope.form_url = function () {
  return '/cam/' + id + '_method=DELETE';
};

то это должно сделать трюк:

form(name="Remove", action="{{form_url()}}", method="post")

Проверьте эти источники: nodejs, разметка jade escape, множественные выражения AngularJS, конкатенирующие в интерполяции с URL-адресом

0

Jade использует {} в качестве индикатора eval, если он не префикс для канала, поэтому вам нужно будет использовать угловые привязки, которые не нуждаются в этом префиксе. Для вашего примера я бы создал функцию контроллера и передал ей идентификатор и метод. Вот пример:

script.
    angular.module('formapp', [])
        .controller('formctrl', function($scope, $http){
            $scope.formsubmit = function(id, method){
                $http({
                    method: method,
                    url: '/cam/' + id + '_method=DELETE'
                });
            };
        })
form(ng-controller="formctrl" name="Remove", ng-submit="formsubmit(id, 'post')")
  button(type='submit')
       | ready
  • 0
    Ты уверен? Я установил точку останова, и отладчик так и не достиг его.
0

Пытаться:

form(name="Remove", action="'/cam/' + {{id}} + '_method=DELETE'", method="post")
  • 0
    Я пытался. Ошибка: Unexpected token {

Ещё вопросы

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