Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Стандартный Pug и JavaScript (https://javascript.ru/forum/node-js-io-js/73265-standartnyjj-pug-i-javascript.html)

jabbascript 02.04.2018 16:19

Стандартный Pug и JavaScript
 
Здравствуйте!!!
Подскажите, каким образом можно обрабатывать данные в стандартном шаблонизаторе Node.js - PUG.
К примеру я хочу итерируемые элементы обрабатывать своей js функцией.

extends layout
 
block content

  script.
    function myFunc(a){
        a.chstotoSdelal();
    }
  each val in body1.vacations
    p=myFunc(val.name)

В данном примере выдвет myFuncis not a function.

Audaxviator 02.04.2018 17:30

https://pugjs.org/language/code.html
Есть нюанс: код придётся писать одной строчкой.
Типа
doctype html
html
  head
    title= title
  body
    - function foo() { var b = 'aaa'; return b; }
    - var a = foo();
    h2 Hello, World!
    h3= a

Результат:
<!DOCTYPE html>
<html>
<head>
<title>Hello</title>
</head>
<body>
<h2>Hello, World!</h2>
<h3>aaa</h3>
</body>
</html>


А-а-а! Фирма веников не вяжет.
doctype html
html
  head
    title= title
  body
    - 
      function foo() { 
        var b = 'aaa';
        return b;
      }
    - var a = foo();
    h2 Hello, World!
    h3= a

jabbascript 03.04.2018 08:52

Спасибо! очень помог)

jabbascript 03.04.2018 09:29

Еще вопрос задам, а можно както обратиться к переменной - var a = foo();
из например подключаемого файла script(src="/js/main.js") ? если например в main.js обратиться так alert(a) он выдаст Uncaught ReferenceError: a is not defined?

Audaxviator 03.04.2018 11:12

Сылака src (как, впрочем, и href) есть обычный GET-запрос клиента (браузера) - соответственно, его содержание получит клиент (браузер).
А шаблонизатор (в данном случае) используется для формирования страницы на сервере. Котлеты отдельно - мухи отдельно.
Но ты можешь использовать шаблонизатор на клиенте - и там все теги script будут работать в едином "пространстве имён".
Вообще, на мой вкус, у тебя какие-то вопросы - к реальной жизни мало относящиеся (хотя, это и не плохо, наверное).
Нопремер, зачем писать функцию в тексте шаблона, если её место в обработчике?
Или - как в прошлом вопросе - зачем делать запрос у самого себя JSON-файла через ажно request, если этот файл можно просто прочитать fs.readFile()?
Но интересно, конечно.

jabbascript 03.04.2018 13:40

Вообще, на мой вкус, у тебя какие-то вопросы - к реальной жизни мало относящиеся. Это точно, я только начал на практике писать и как оказалось node и mongo не самое непонятное))).
Но ты можешь использовать шаблонизатор на клиенте не совсем понял, т е у меня должен pug быть и на фронте и на бэкэнде?

Audaxviator 03.04.2018 14:12

Не должен. Но если сильно хочется, то можно.


Часовой пояс GMT +3, время: 07:55.