2

アップショットを使用してサービスからデータを取得し、Knockout.js を使用して値をリストにバインドする JQuery Mobile UI を構築しようとしています。データを入力することはできますが、JQuery モバイル スタイルがレンダリングされません。

これが私のコードです。この点で何か助けていただければ幸いです。

<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>
4

1 に答える 1

0

refresh() 呼び出しは非同期であるため、更新後に実行されるコールバック関数を提供できます。jQueryMobile のドキュメントによると、アイテムを追加する場合、アイテムの作成後にリストビューを更新する必要があります: http://jquerymobile.com/demos/1.0.1/docs/lists/docs-lists.html

これを行う方法の例を次に示します。

var dataSource = upshot.dataSources.Projects.refresh(function() {
    $("ul").listview('refresh');
});
于 2012-03-25T18:42:57.930 に答える