Подчеркивание JS шаблон не работает

Это должно быть легко или просто, но я не знаю, почему это не работает. Я трачу здесь около 1 целый день.

https://jsfiddle.net/panyongfeng/m73vnz9j/

<script>
        var tpl = "hello: <%= name %>";
        var compiled = _.template(tpl);
        compiled({
            name: "dadf"
        });
        alert(compiled());
</script>

Я просто получаю "привет результат", который должен быть привет, папа. Не могли бы вы указать, что не так? Спасибо

2 ответа

Решение

Вы неправильно понимаете примеры в документации. Когда они говорят это:

var compiled = _.template("hello: <%= name %>");
compiled({name: 'moe'});
=> "hello: moe"

Контекст заключается в том, что они работают внутри REPL, как если бы они работали node из командной строки. Это означает, что материал после => является результатом последнего выражения и hello: moe Строка это то, что compiled({name: 'moe'}) возвращается. Запуск функции шаблона возвращает заполненный шаблон в виде строки, он нигде не хранит результаты.

Вы хотите бросить последний alert позвоните в пользу этого:

alert(compiled({ name: "dadf" }));

Ваш код верен, но если вы хотите использовать результат, вам нужно сохранить результат скомпилированного метода. Итак, ваш код должен быть -

var dump = compiled({ name: "dadf" });
alert(dump);
Другие вопросы по тегам