Используя Knockout.Js, как обновить ul, когда новые данные связываются с li?
На самом деле я борюсь с нокаутом JS в течение нескольких дней. потому что я новичок в этой технологии. Я не могу обновить ul, когда новые данные связываются с li. Ниже приведен мой код.
<ul data-role="listview" id="ListSearch" data-divider-theme="b" data-inset="true" >
<li data-role="list-divider" role="heading">
Criteria Selected
</li>
<!-- ko foreach: Contacts -->
<li data-theme="c">
<a href="#page3" data-transition="slide" data-bind="attr: { title: ContactID }">
<span data-bind="text: FirstName + ' ' + LastName + ' (' + Classification +':'+ Position+ ')'"></span>
</a>
</li>
<!-- /ko -->
</ul>
Jquery Ajax Call:
$.ajax({
url: 'http://localhost:50043/api/contacts/filter',
type: 'GET',
dataType: 'jsonp',
data: { ID: ClassificationPositionid },
context: this,
success: function (result) {
self.Contacts(result);
$('#ListSearch').listview("refresh"); //throwing error.
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$(".divLoading").hide();
alert(errorThrown);
}
});
ListSearch является идентификатором UL. Если я дал, как и выше, то выкидывает ошибку ниже.
Uncaught TypeError: Object [object Object] has no method 'listview'
Как исправить эту ошибку? Пожалуйста, помогите мне, где я сделал ошибку
2 ответа
Поместите приведенный ниже код после ошибки в вызов jjery ajax,
complete: function () {
$('#ListSearch').listview('refresh');
}
Важно: 1) Не загружать jquery после мобильного плагина js 2) Не загружать jquery при выборе тела... Пожалуйста, сначала загрузите jquery(jquery.min.js,knockout,...), а затем загрузите мобильный плагин JS
Если вы получили ошибку здесь $('#ListSearch').listview("refresh"); //throwing error.
, то просто так бывает:
- Плагин jQuery Mobile ListView не загружен.
- Плагин jQuery Mobile ListView загружен, но не работает.
Проверьте, какие файлы скриптов загружены на вашей веб-странице (инструменты разработчика браузера с помощью клавиши F12 и т. Д.), Чтобы увидеть, какие скрипты загружены. Может быть, этот файл jQuery отсутствует?
РЕДАКТИРОВАТЬ:
На вашей позиции я бы попробовал следующее - начать новый проект и включать только файлы сценариев jQuery и jQuery Mobile. Тогда возьми код:
<script type="text/javascript">
$(function(){
$('#ListSearch').listview("refresh");
});
</script>
и посмотрим, не сработает ли выше. Если это так, то на 100% что-то не так с мобильным скриптом jQuery. Попробуйте получить этот файл сценария откуда-то еще, например загрузить его с сайта jQuery и включить в свой проект.
В основном, уменьшите код до минимального количества и посмотрите, что работает.