Автоматически сгенерированный идентификатор при просмотре emberjs

Привет, я новичок в Embers и в stackoverflow. Я работаю над этой проблемой в течение недели. Я пытаюсь сделать редактируемую таблицу с угольками, но основная проблема заключается в том, чтобы автоматически генерировать идентификатор для моих скрытых текстовых полей. Внутри моего шаблона руля я создаю такие текстовые поля:

{{view Ember.TextField id="first_input_" class="hidden"}}

Но я хочу вызвать HandlebarsHelper, который даст мне номер для этой строки, что-то вроде этого:

{{view Ember.TextField id="first_input_"{{{getId}}}  class="hidden"}}

Быть моим помощником по рулю примерно так:

Handlebars.registerHelper('getId', function() {
    id = id + 1;
    return new Handlebars.SafeString(id);
});

Я надеюсь, что кто-то может помочь мне с этим, я думал о том, чтобы не использовать Ember.TextField и просто обычный ввод, но может быть проще использовать его с ember для привязки.

Спасибо.


person Carlos Loureda    schedule 16.06.2012    source источник


Ответы (1)


Первое, что я замечаю, это то, что вы неправильно ставите кавычки в строке:

{{view Ember.TextField id="first_input_"{{{getId}}}  class="hidden"}}

Я не уверен, что это опечатка при написании в StackOverflow, но если вы тестируете в Chrome, я думаю, что Chrome удалит данные перед выводом HTML.

Также я думаю, что руль (шаблон за ember) вызовет ошибку синтаксического анализа.

Вы можете попробовать здесь ( tryhandlebarjs ) для базовой площадки для создания шаблонов руля.

Кроме того, я думаю, что id = id + 1 что-то не так в том, что нет никакого экземпляра. Есть вероятность, что там парсер выдает ошибку. Но я должен был сделать некоторые проверки.

person nembleton    schedule 18.06.2012
comment
Почему бы вам просто не сделать: {{view Ember.TextField id={{{getId}}} class=hidden}}, а в вашем помощнике Handlebars.registerHelper('getId', function() { return (App.genID = App.genID + 1;}); (Не забудьте настроить App.genID = 0; где-то раньше). - person nembleton; 29.11.2012