Шаблоны закрытия - создайте повторно используемый псевдоним для сложного определения «записи».

У меня есть соевый шаблон, который выглядит как

{template .fullView}
  {@param people: list<[age:int, name:string]>}
  {call .headers}
    {param people: $queries /}
  {/call}
  {call .content}
    {param people: $queries /}
  {/call}
{/template}

{template .headers}
  {@param people: list<[age:int, name:string]>}
  # headers
{/template}

{template .content}
  {@param queries: list<[age:int, name:string]>}
  # content
{/template}

Поскольку определение записи для «людей» стало более сложным, чем просто возраст и имя, стало утомительно обновлять определение параметра во всех трех местах. Можно ли вместо этого создать псевдоним или что-то, что можно было бы повторно использовать в каждом шаблоне?

{alias [age:int, name:string] as Person}
{template .headers}
  {@param people: list<Person>}
  # headers
{/template}

person user3875080    schedule 16.04.2020    source источник


Ответы (1)


Почему бы вместо этого не определить прототип для Person? docs также рекомендует использовать proto вместо записей:

Во многих случаях определение буфера протокола предпочтительнее использования записей, поскольку оно менее подробное.

Таким образом, вы могли бы определить сообщение, как это?

// syntax: proto3
message Person {
    int32 age = 1;
    string name = 2;
    // more fields here 
}
person cs95    schedule 19.04.2020