Jquery mobile 使用Knockoutjs填充JqueryMobile列表视图

Jquery mobile 使用Knockoutjs填充JqueryMobile列表视图,jquery-mobile,knockout.js,Jquery Mobile,Knockout.js,我试图使用knockoutjs库填充jquery mobile listivew,但我的问题是列表视图的标题(列表分隔符)重复出现。我想知道如何解决这个问题 这是我的代码,谢谢你的帮助 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" conten

我试图使用knockoutjs库填充jquery mobile listivew,但我的问题是列表视图的标题(列表分隔符)重复出现。我想知道如何解决这个问题

这是我的代码,谢谢你的帮助

<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0"> 
<meta name="apple-mobile-web-app-capable" content="yes"> 
<meta name="apple-mobile-web-app-status-bar-style" content="black"> 

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script>
 <script src="http://cloud.github.com/downloads/SteveSanderson/knockout/knockout-2.0.0.js" type="text/javascript"></script>




</head> 
<body> 

 <div data-role="page">
    <div data-role="header">
        <h1>Header</h1>
    </div>
    <div data-role="content">
          <ul data-role="listview" data-inset="true" data-bind="foreach:seats"  data-theme="b"  data-filter="true"
            >
                <li data-role="list-divider">List </li>

        <li>
            <a  href="#" ><span  data-bind="text:reservationId"></span></a>

        </li>

    </ul>
    </div>

 </div>
 <script type="text/javascript">


function Reservation(reservationId, covers) {

    var self = this;
    self.reservationId = reservationId;
    self.covers = covers;

}

function ReservationsViewModel()
{
 var self = this;   
self.seats = ko.observableArray();

self.fillReservations=function()
{   

var mydata={
             "result":[
     {
         "reservationId": "23424574367436523452345",
         "covers"       : "4"
      },
      {
         "reservationId": "23424574367436523452345",
         "covers"       : "4"

     }
]  
  };                    

 $.each(mydata.result, function (index, value) {                 
      self.seats.push(new Reservation(this.reservationId,this.covers));
    });


}//End fillReservations
self.fillReservations();
}// End ReservationsViewModel

ko.applyBindings(new ReservationsViewModel());      
    </script>  

</body> 

</html> 

标题
  • 列表
功能预订(预订ID、封面){ var self=这个; self.reservationId=reservationId; self.covers=封面; } 函数ReservationsViewModel() { var self=这个; self.seats=ko.observearray(); self.fillReservations=function() { var mydata={ “结果”:[ { “reservationId:“23424574367436523452345”, “封面”:“4” }, { “reservationId:“23424574367436523452345”, “封面”:“4” } ] }; $.each(mydata.result,函数(索引,值){ self.seats.push(新预订(this.reservationId,this.cover)); }); }//结束预定 self.fillReservations(); }//结束保留视图模型 应用绑定(新的ReservationsViewModel());

谢谢您的帮助。

我通过使用无容器控制流语法解决了我的问题

尝试如下:

<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0"> 
<meta name="apple-mobile-web-app-capable" content="yes"> 
<meta name="apple-mobile-web-app-status-bar-style" content="black"> 

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script>
 <script src="http://cloud.github.com/downloads/SteveSanderson/knockout/knockout-2.0.0.js" type="text/javascript"></script>




</head> 
<body> 

 <div data-role="page">
    <div data-role="header">
        <h1>Header</h1>
    </div>
    <div data-role="content">
          <ul data-role="listview" data-inset="true" data-bind="foreach:seats"  data-theme="b"  data-filter="true"
            >
                <li data-role="list-divider">List </li>

        <li>
            <a  href="#" ><span  data-bind="text:reservationId"></span></a>

        </li>

    </ul>
    </div>

 </div>
 <script type="text/javascript">


function Reservation(reservationId, covers) {

    var self = this;
    self.reservationId = reservationId;
    self.covers = covers;

}

function ReservationsViewModel()
{
 var self = this;   
self.seats = ko.observableArray();

self.fillReservations=function()
{   

var mydata={
             "result":[
     {
         "reservationId": "23424574367436523452345",
         "covers"       : "4"
      },
      {
         "reservationId": "23424574367436523452345",
         "covers"       : "4"

     }
]  
  };                    

 $.each(mydata.result, function (index, value) {                 
      self.seats.push(new Reservation(this.reservationId,this.covers));
    });


}//End fillReservations
self.fillReservations();
}// End ReservationsViewModel

ko.applyBindings(new ReservationsViewModel());      
    </script>  

</body> 

</html> 
    <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">
                  <span data-bind="text: FirstName " ></span>
              </a>
          </li>
          <!-- /ko -->
      </ul>
  • 选择的标准