Модальное окно Twitter Bootstrap, проблема 531

https://github.com/twitter/bootstrap/issues/531

Я использую Twitter Boostrap с исправлением, описанным в выпуске 531, чтобы разрешить использование атрибута данных для передачи данных в модальные окна, и это работает нормально, но...

$('#modal2').data('modal').options.user_id 

кажется, отличается от:

$('#modal2').data('user_id')

Я передаю user_id:

<a data-toggle="modal" data-user_id="5" href="#modal2">Edit Picture</a>

$('#modal2').on('show', function (event) {
    $('#modal2').data('user_id', $('#modal2').data('modal').options.user_id );
}); 

Но я также пытаюсь передать один и тот же атрибут данных из одного модального окна в другое:

внутри #modal1:

$('#modal1').modal('hide');
$('#modal2').data('user_id', 6); // successfully sets the user_id to 6
$('#modal2').modal('show');

Проблема в том, что когда modal2 открывается с помощью этого метода, он имеет неправильное значение (5 вместо 6) и, кажется, игнорирует данные, установленные $('#modal2').data('user_id', 6);

Как я могу программно установить значение data('modal').options.user_id или это ошибка с исправлением?


person Asa Carter    schedule 16.08.2012    source источник


Ответы (1)


Они разные. Патч для передачи данных в Bootstrap Modals передает данные только от исходной привязки к объекту Modal.options. Так,

<a data-toggle="modal" data-user_id="5" href="#modal2">Edit Picture</a>

дает тебе:

$('#modal2').data('modal').options.user_id === 5 // true

но это не добавляет новый объект данных к модальному элементу.

Таким образом, в вашем случае попытка присвоить значение отдельному объекту данных (data('user_id')) не повлияет на значение Modal.options.user_id.

Вам нужно либо манипулировать значением данных в исходном якоре, либо напрямую манипулировать значением Modal.options.user_id.

person merv    schedule 17.08.2012
comment
Что же тогда является синтаксисом для прямого управления значением данных Modal.options.user_id? - person Asa Carter; 17.08.2012
comment
Спасибо, обычно все не так просто :) - person Asa Carter; 19.08.2012