У меня проблема, которая заставила меня почесывать голову целыми днями. Мои знания о JavaScript невелики, я все еще участвую, и, прежде всего, я работаю над проектом, где я вынужден использовать рули, марионетку и другие вещи, с которыми я не знаком.Как получить данные из цикла handlebars и использовать его в базовой модели?
У меня есть шаблон Рули, который выглядит следующим образом:
{{#if images}}
{{#each images}}
<div class="image-thumbnail">
<i class="delete-button" style="cursor:pointer" id="delete-button-id" data-imgid="{{id}}"></i>
<img src="{{thumbnail}}"/></a>
</div>
{{/each}}
все это выглядит хорошо, когда страница загружается, никаких проблем. Если я поставлю {{id}}
между <i>{{id}}</i>
, тогда значение будет корректно выводиться в браузере. Проблема у меня есть доступ к этим идентификатор из всплывающего окна, которое я генерации с помощью:
deleteImage: function(event) {
new DeleteView({model: new Backbone.Model()}).render().$el.appendTo('body');
},
Я попытался добавить следующее:
new DeleteView({model: new Backbone.Model({ imgid: imageID })}).render().$el.appendTo('body');
и установка imgid
с помощью:
var imageElement = document.getElementById('delete-button-id');
var imageID = imageElement.getAttribute('data-imgid');
К сожалению, это только последние imgid
, и все одинаково для каждого. Страница в основном представляет собой список фотографий, которые генерируются из цикла рулей. На странице могут быть десятки, а imgid
я получаю, когда всплывающие окна должны быть конкретными для тех, которые я нажал.
Мой главный вид для страницы, где отображаются изображения:
var ThumbnailView = Marionette.ItemView.extend({
template: getTemplate('profile/thumbnail'),
className: 'main-gallery',
events: {
'click .delete-button': 'deleteImage'
}
... more code follows ...
Может кто-нибудь сказать мне, что я делаю неправильно? Мне нужно получить правильный динамически генерируемый imgid
от data-imgid="{{id}}"
, но я получаю только один и тот же каждый раз.
Любая помощь была бы принята с благодарностью.
Заранее благодарен!
Спасибо, этот совет был идеален и решил мою проблему! Большое спасибо сэр! – SheriffOfNottingham
@SheriffOfNottingham рад помочь! :) – Nimsterman