Проникаю $index
и $data
в функцию change_model
. Функция ожидает 2 параметра в следующем порядке: (index, data)
.
С точки зрения модели Я прохожу click: $root.change_model.bind($data, $index())
. В пределах функции index
отпечатки $data
и data
отпечатки index
: значения меняются на противоположные.
self.change_model = function(index, data) {
self.patternSelectedIndex(index);
selected_door = data.file;
create_door();
};
<div data-bind="foreach: x.patterns">
<div class="thumbnail" data-bind="css: { selected: $index() === $root.patternSelectedIndex() }">
<img class='img model' style='width:164px;height:90px;padding:5px' data-bind="attr:{src:'images/models/' + $data.file + '.png'}, click: $root.change_model.bind($data, $index())" />
<div class="caption">
<span data-bind="text: $data.name"></span>
</div>
</div>
</div>
Это может помочь, если вы включите * пи * немного больше кода, чтобы сделать полный репро, что делает его более легким для других, чтобы помочь вам. Что-то вроде [this jsfiddle] (http://jsfiddle.net/cz2jw41s/1/). – Jeroen
Возможный дубликат [Использование метода привязки JavaScript] (http://stackoverflow.com/questions/2236747/use-of-the-javascript-bind-method) – CrimsonChris