Как использовать angular-expressions без HTML

Всем привет!

Задачка следующая: есть строка "Hello, {{user.name}}"

Это НЕ html-страница, то есть есть переменная:

let str = "Hello, {{user.name | lower }}. Тебе нужно пойти в {{ place.address }}"

lower - это мой кастомный фильтр для angular-expressions

expressions.filters.lower = function (input) {
    if (!input) return input;
    return input.toLowerCase();
}

Есть объект:

const data = {
  user: {
    name: "Виталий"
  }, 
  place: {
    address: "Уточкина"
  }
}

Так вот, как я могу заменить данные плейсхолдеры, чтобы angular-expressions заменил и применил фильтр?


Ответы (1 шт):

Автор решения: Sergey Glazirin

Насколько мне известно, ангуляр не поддерживает возможность использовать angular-expressions за пределами шаблонов, по крайней мере, напрямую.

Для того, чтобы применять какие-то функции в строках, можно использовать шаблонные строки.

const name = 'Василий';
const str = `${name}, привет!`;

console.log(str);


const person = {
  name: 'Василий',
  lastName: 'Петрович',
}

function getFullName(pers) {
  return `${pers.name} ${pers.lastName}`;
}

const str2 = `${getFullName(person)}, привет!`;

console.log(str2);

→ Ссылка