Если у меня есть какое-то значение из углового $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
При использовании 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-адресом
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
Пытаться:
form(name="Remove", action="'/cam/' + {{id}} + '_method=DELETE'", method="post")
Unexpected token {