Я использую Node.js с Экспресс и Джейд в моем веб-приложение, с AngularJS на вершине. Обычно, когда я строю директивы, я включаю Html в шаблон определения директивы, а затем проверяю директиву, описывающую фрагмент Html, который мне нужен. Но теперь я должен написать директиву, которая включает очень длинный HTML, поэтому я использую templateUrl
: более того, я хочу сделать это с помощью Jade. Таким образом, код выглядит следующим образом:Test Угловая директива с templateUrl и Джейд
[...]
.directive('myDirective', function() {
return {
restrict: 'E',
templateUrl: '/snippet',
link: function (scope, element, attrs) {
// some code
}
};
});
Где сервер обрабатывать вызов /snippet
с этим:
app.get('/snippet', function (req, res) {
res.render('templates/mySnippet', {},
function (err, rendered) {
if (!err)
res.status(200).send(rendered);
});
});
Так что моя проблема: как я могу проверить эту директиву? Я обычно делаю модульный тест с помощью Karma и Mocha/Chai: существует ли какой-либо плагин для кармы, который может взять нефритовый файл, обрабатывать его и служить ему поддельным сервером, когда моя директива будет искать /snippet
?
, если ваши шаблоны нефрита являются лицами без гражданства (он же не в зависимости от сервера данных), которые Надеюсь, вы должны предварительно комбинировать их вместо того, чтобы обслуживать их с вашего сервера, используя grunt, gulp или любой менеджер проектов js. Это значительно облегчило бы шаги тестирования (которые также могут запускаться из grunt/glup/other). Если они (шаблоны) не являются апатридами - ну, сделайте их, потому что они должны. –
@PierreGayvallet, вы имеете в виду, что лучше прекомпилировать только для тестов или вы хотите предварительно скомпилировать и для нормальной работы страницы сервером? Конечно, моя страница шаблона без гражданства. – napcoder
Лучше предварительно скомпоновать и «нормальную» страницу, таким образом, вы обрабатываете компиляцию tpl одинаково для фазы тестирования и фазы запуска/производства (также вы избегаете компиляции шаблона jade каждый раз, когда запрос отправляется для этого шаблона) –