/ / Вземи текущия URL адрес за запитване - handlebars.js, сглоби, грунт-събери

Получавайте текущия низ за заявки за url - handlebars.js, сглобявайте, грундирайте

Аз се опитвам да напиша помощник за кормилата, който изхвърля текущия низ за запитване на URL адреса. След това ще използвам този низ за заявка, за да попълня шаблон.

URL адресите ми изглеждат по следния начин: groups/group-details/?id=1 и искам да получа стойността на id.

Ето моя помощник:

Handlebars.registerHelper("currentId", function() {
return document.location.search.split("?")[1].split("=")[1];
});

И го наричам в моя .hbs шаблон като този:

{{currentId}}

Очаквам това просто да изплюе 1 в този пример, но нищо не е показано.

Къде отивам?

- Редактиране -

Копаенето в конзолата на уеб инспектора показва, че помощникът ми е регистриран, но ако сложа точка на прекъсване в декларацията за връщане, никога няма да бъде ударен. Предполагам, че помощникът просто не се изпълнява.

Отговори:

2 за отговор № 1

Ако създавате html с монтиране, тогава сглобяването прави рендър пас с Handlebars. {{currentId}} на сървъра.

Ако го направи, бих очаквал грешка вътре в помощника оттогава document.location.search не е налично. Тъй като не получавате грешка там, предполагам, че помощникът не е регистриран в сглобяване и само с предната ви част на Handlebars. {{currentId}} се интерпретира като стойност от Handlebars и не прави нищо.

TL; DR;

При смесване на шаблони от предния край и шаблони на бекенда, трябва да избягате от шаблоните на предния край, така че процесът на бекенда да не ги показва. {{currentId}} за да видите дали се използва помощникът.


1 за отговор № 2

Не съм много сигурен защо се обърквате.

Но, бих използвал изречение тук.

за разбор 1 извън groups/group-details/?id=1

var a =  (new RegExp("/?id=(d)+"));
var v = a.exec("groups/group-details/?id=1")[1];
console.log(v);

Също така се опитах

"groups/group-details/?id=1".split("?")[1].split("=")[1]

и се връща 1 глоба.

Причината, поради която бих отишъл с regex е, че вече правите две низови манипулации, които може да не са най-ефективният начин.