2012-03-23 2 views
2

Я пытаюсь создать JQuery Mobile UI, который использует upshot для получения данных из службы, а затем использует Knockout.js для привязки значений к списку. Однако я могу заполнять данные, но стили мобильных JQuery не отображаются.Как связать JQuery Mobile с нокаутом и Upshot

Вот мой код. Любая помощь в этом отношении была бы действительно оценена.

<h2>Projects (<span data-bind="text: projects().length"></span>)</h2> 

<ul data-inset="true" data-bind="foreach: projects" data-role="listview" data-theme="e" data-dividertheme="c" data-filter="true"> 
    <li> 
      <a href="#" data-bind="text: ProjectName"></a> 
      Project Type : <label data-bind="text: ProjectType"></label> 
      Description : <label data-bind="text: Description"></label> 
    </li> 
</ul>  
<p></p> 

@(Html.UpshotContext(bufferChanges: true).DataSource<ProjectServiceController>(x => x.GetProjects())) 

<script type="text/javascript"> 
    $(function() { 
     var dataSource = upshot.dataSources.Projects.refresh(); 
     var ProjectsViewModel = { 
      projects: dataSource.getEntities() 
     }; 

     ko.applyBindings(ProjectsViewModel);   
    }); 

</script> 

ответ

0

Вызов обновления() является асинхронным, так что вы можете предоставить функцию обратного вызова, которая выполняется после обновления. jQueryMobile документы говорят, что если вы добавляете элементы, которые необходимо обновить ListView после созданы пункты: http://jquerymobile.com/demos/1.0.1/docs/lists/docs-lists.html

Вот пример того, как вы могли бы сделать это:

var dataSource = upshot.dataSources.Projects.refresh(function() { 
    $("ul").listview('refresh'); 
}); 
+0

Thankyou очень много ... это работает в совершенстве... – user1288411

Смежные вопросы