Почему помощник шаблона Meteor не возвращает переменную в контексте?

Почему-то это вообще не работает.

{{user_slugged username}}

{{username}} — это переменная, доступная для шаблона. Однако это дает мне нулевое/неопределенное значение в помощнике.

Вот мой вспомогательный код

UI.registerHelper('user_slugged', function(username) {

... other stuff... return things.


}

Проблема, с которой я сталкиваюсь, заключается в том, что когда я пытаюсь что-то вроде этого {{user_slugged 'Hello'}}, он все делает правильно и возвращает то, что ожидается.

Однако, когда я пытаюсь использовать {{user_slugged username}}, это не работает, хотя я могу легко отобразить {{username}} в той же строке кода.

Что кажется действительно странным, теперь я думаю, что способ отправки параметров помощникам руля мог измениться в Meteor 0.8.0. Если это так, было бы здорово, если бы кто-нибудь мог указать мне правильное направление или дать мне ответ на этот вопрос.

РЕДАКТИРОВАТЬ: Чтобы уточнить, я могу использовать {{username}} в той же строке, что и {{user_slugged username}}, поэтому что-то вроде этого работает

<a href="{{user_slugged username}}">{{username}}</a>

username — это свойство объекта, которое доступно в шаблоне и в том месте, где я пытаюсь отправить его в качестве параметра помощнику.


person user1952811    schedule 31.03.2014    source источник
comment
Если вы просто используете {{username}} в шаблоне именно в этом месте, это работает (показывает что-то кроме null/undefined)? Может быть, вы случайно меняете контекст вокруг вызова user_slugged?   -  person musically_ut    schedule 31.03.2014
comment
Я использую имя пользователя в той же строке без изменения контекста шаблона   -  person user1952811    schedule 31.03.2014
comment
@user1952811 user1952811 является username свойством объекта или самого помощника?   -  person Firo    schedule 31.03.2014
comment
Это свойство объекта.   -  person user1952811    schedule 31.03.2014


Ответы (1)


Я не уверен, почему это происходит (может быть, есть глобальный помощник username?), но вы сможете легко это исправить, написав

{{user_slugged ./username}}

вместо

{{user_slugged username}}

Точка всегда означает текущий контекст данных, поэтому движок рендеринга не может запутаться в нем.

person Tomasz Lenarcik    schedule 22.04.2014