Я работаю над веб-приложением, которое должно быть полностью совместимо с мобильными и настольными устройствами. Я связывание события щелчка к узлу и передача параметра функции ViewModel как так:KnockoutJS - клик по бингу с параметрами, не работающими на мобильных устройствах
<a href="#" class='btn btn-danger' data-bind="click: bsDeleteModal.open.bind($data, 1)"><span>Delete</span></a>
Он работает должным образом на настольных браузерах, но не на мобильных телефонах или планшетах. Я протестировал этот код на родных браузерах Android на планшете и телефоне, Internet Exporer 11 на Windows Phone 8.1, iPhone Safari и мобильных версиях Chrome на каждом устройстве без везения.
Это мой ViewModel упрощенно:
var DeleteModalViewModel = function(/*parameters....*/){
var self = this;
//parameters...
self.open = function(position){
alert("position: " + position);
}
}
var vm = (function(){ //...my viewmodel...
var self = this;
self.bsDeleteModal = new DeleteModalViewModel(/*parameters...*/);
//additional parameters...
})();
ko.applyBindings(vm);
Существует известная проблема или ошибка в knockoutjs 3 рамке, которая предотвращает меня от привязки событий во время передачи параметров на мобильных телефонах?
Я также попытался передать его так:
<a data-bind="click: function(data, event){ bsDeleteModal.open.bind($data, 1) }" />
Кроме того, я попытался добавить $ корень перед именем функции мышления мобильные устройства не могут разобрать имена функций правильно, но не везло.
<a data-bind="click: function(data, event){ $root.bsDeleteModal.open.bind($data, 1) }" />
Любая помощь будет очень признательна. Заранее спасибо.
EDIT: Я забыл упомянуть: мой html-код находится внутри тега шаблона, который загружается как частичный вид при загрузке страницы. Это может быть важно, так как раньше у меня были проблемы с динамическими привязками шаблонов.