2016-08-29 4 views
0

Я пытаюсь научиться работать с meteor и google analytics API.Как манипулировать Spacebars, когда свойство объекта использует двоеточие в его записи?

У меня была проблема с синтаксисом spacebars ...

Когда я пытаюсь получить доступ к объекту все работает хорошо ... как это:

HTML - Использование космических бруски двойные скобки чтобы получить доступ к atribute объекта внутри другого объекта:

{{# each performanceRow}} 
      <tr> 
       <td class="choiceId {{selectedChoice}}">{{name}}</td> 
       <td class="choiceId {{selectedChoice}}">{{indicator}}</td> 
       <td class="choiceId {{selectedChoice}}">{{goal}}</td> 
       <td class="choiceId {{selectedChoice}}">    {{current.profileInfo.profileId}}</td> 
      </tr> 
    {{/each}} 

проблема происходит потому, что один из атрибутов записывается в виде follow: ga:exitRate

И затем, если я попытаюсь воспроизвести его с помощью пробела, метеорит не распознает двоеточие как имя поля. В следующем порядке:

{{current.totalsForAllResults.ga:exitRate}} 

Как контур этой ситуации?

+0

Есть ли возможность переименовать поле в ga_exitRate? – Ankit

+1

Вы попробовали создать помощник, чтобы вместо этого вернуть желаемое значение? – Luna

+0

Согласитесь с Luna, хелпером, который ссылается на 'this', помещенным внутри' {{totalsForAllResults}} ', и возвращает' this ['ga: exitRate'] 'должен работать. –

ответ

0

От guide: Идентификатор Spacebars - это либо имя идентификатора JavaScript, либо любая строка, заключенная в квадратные скобки ([какая красивая строка]). Таким образом, я полагаю, вы можете просто использовать его как это:

{{ [current.totalsForAllResults.ga:exitRate] }} 

Я не пробовал с вложенными объектами, но я знаю, что он работает с идентификаторами, которые имеют место в нем, так, например, это работает

{{ [custom field] }} 

при доступе бы его из JavaScript, как этот

doc['custom field'] 

Позвольте мне знать, это работает.

+0

Хороший улов! :-) Я бы подумал, что только идентификатор будет в квадратных скобках, а путь будет как обычно? Затем он очень похож на доступ к JS, за исключением посторонних точек или косой черты в качестве разделителя, и нет необходимости в кавычках: 'current.totalsForAllResults. [Ga: exitRate]' (см. Последнюю часть раздела guid, на который вы ссылаетесь) – ghybs

+0

I не думайте так. Для меня похоже, что вы используете строку в скобках или js-идентификатор. Вы проверили это? – tomsp

+0

Я не тестировал, но тогда как он мог определить, будет ли '[path.to.my поле]' означать 'путь.to [" мое поле "]' или '[" path.to.my field "]'? (хотя, конечно, второй был бы ужасной практикой, но юридически). – ghybs

 Смежные вопросы

  • Нет связанных вопросов^_^