Я ищу вспомогательную функцию ember, такую как {{json JSON-flat-definition}} для определения атрибута или аргумента. Где его найти и как использовать?

Я ищу вспомогательную функцию ember, такую как {{json JSON-flat-definition}} для определения атрибута или аргумента. Где его найти и как использовать?

31.05.2020 06:53:56 Просмотров 12 Источник

Встроенные вспомогательные функции в Ember (over Handlebars) уже определены, такие как {{let}}, {{array}}, {{hash}}, поэтому для меня база помощника {{json}}, принимающего любую строку json в качестве параметра для определения атрибутов шаблона или аргументов компонента. Есть ли такой помощник? Как выглядит строка JSON-definition-string, поскольку встроенные модули используют только пробелы для структурирования данных?

https://guides.emberjs.com/release/components/helper-functions/#toc_the-let-helper https://guides.emberjs.com/release/components/helper-functions/#toc_the-array-helper https://guides.emberjs.com/release/components/helper-functions/#toc_the-hash-helper

Так что ожидаемое-это что-то вроде

<Greeting @people={{json
    firstName='Tom'
    lastName='Dale'

    firstName='Yehuda'
    lastName='Katz'

    firstName='Jen'
    lastName='Weber'
  }} />
У вопроса есть решение - Посмотреть?

Ответы - Я ищу вспомогательную функцию ember, такую как {{json JSON-flat-definition}} для определения атрибута или аргумента. Где его найти и как использовать? / I'm looking for an ember helper function like {{json JSON-flat-definition}} to define an attribute or argument. Where to find and how to use?

Lux

31.05.2020 07:43:55

Но это не так. Вам нужно будет позвонить array и hash самостоятельно. Так что вы можете сделать это:

@people={{array
  (hash
    firstName='Tom'
    lastName='Dale'
  )
  (hash
    firstName='Yehuda'
    lastName='Katz'
  )
  (hash
    firstName='Jen'
    lastName='Weber'
  )
}}

Будьте осторожны с тем, что вы считаете "строкой json", потому что вы использовали ее для" рекурсивной структуры данных, состоящей из массивов и словарей", а не на самом деле JSON. Потому что JSON-это формат сериализации, или, по самому его названию, "JavaScript Object Notation" - нотация. Если у вас есть те же данные в той же структуре, но в другом формате, то это уже не JSON.

Так что если вы это сделаете

const foo = {
  name: "something"
};

это не объект JSON ! foo определенно не будет объектом JSON , это будет просто Object. Вы можете утверждать, что часть исходного кода, начиная с { до hash0, является объектом JSON, но даже это неверно. JSON определяет подмножество допустимых нотации объектов JavaScript и

hash2

недопустимо JSON, потому что hash4 не находится в двойных кавычках.

Поэтому, если бы вы построили помощник hash5, он был бы использован следующим образом:

hash6

это ни в коем случае не приятно использовать и будет в основном полезно, если у вас есть фактическое значение JSON внутри hash8 и вы хотите его разобрать. Этот помощник также будет очень легко написать:

hash9

Одна вещь, которую следует упомянуть здесь, заключается в том, что существует @people={{array (hash firstName='Tom' lastName='Dale' ) (hash firstName='Yehuda' lastName='Katz' ) (hash firstName='Jen' lastName='Weber' ) }} 0, предложенный для введения летерального синтаксиса для определения массивов и хэшей в ember.

Так что, может быть, когда-нибудь нечто подобное станет частью Эмбера:

@people={{array
  (hash
    firstName='Tom'
    lastName='Dale'
  )
  (hash
    firstName='Yehuda'
    lastName='Katz'
  )
  (hash
    firstName='Jen'
    lastName='Weber'
  )
}}
1

но в настоящее время вы должны позвонить array/hash на каждом уровне, как показано выше.

Закрыть X