2014-01-26 61 views
2

您好我想從jQuery的負載動態加載JS淘汰賽的HTML頁面,但得到淘汰賽JS jQuery的負載

不能多次申請綁定同一個元素。

如何使用jqyuery加載加載淘汰js頁面。

我在試圖創建一個導航框架,通過加載url頁面(Views/home.html或Views/login.html),當用戶點擊鏈接時。

所以

我想創建導航模型加載/刷新頁面不是整個頁面的唯一機構,我不能加載所有knocokout視圖模型上的拳頭負荷。

例如

<ul class="nav navbar-nav" id="nav"> 
      <li> 
       <a href="Views/home.html" class="active">Home</a> 
      </li> 
      <li> 
       <a href="Views/login.html">Login</a> 
      </li> 
      <li> 
       <a href="Views/Contactus.html">Contactus</a> 
      </li> 

     </ul> 

<div id="body"></div> 

如果首頁點擊

$("#body").load("Views/home.html"); 

如果登錄點擊

$("#body").load("Views/login.html"); 

Home.html中

var homeViewModel= function() { 
      this.firstName = ko.observable(); 
      this.lastName = ko.observable();   
     }; 

     ko.applyBindings(new homeViewModel()); 

的login.html

var loginViewModel= function() { 
     this.username = ko.observable("test"); 
    }; 
    ko.applyBindings(new loginViewModel()) 
+0

[KnockoutJS:ko.applyBindings to partial view?](http://stackoverflow.com/questions/7342814/knockoutjs-ko-applybindings-to-partial-view)的可能重複 - 你可以傳入元素作爲第二個參數 –

+0

這不是重複的。 –

+0

我在試圖創建一個導航模型 - 當用戶點擊鏈接時加載

。所以我不能在第一次加載時加載所有的knocokout視圖模型 –

回答

1

我已經安裝和拆卸節點,但將相關總是命名視圖模型必須是視圖模型

ko.cleanNode($("#body")[0]); 
       $("#body").load(url, function() { 
        ko.applyBindings(new viewModel(), $("#body")[0]); 
       }); 
1

你可能想看看Pager.js,延伸用於頁面歷史記錄和部分加載的knockout.js。

加載您的主頁中的所有JavaScript。 保留僅包含具有綁定聲明的html的partials(Views/home.html,Views/login.html)。 您不需要在切換部分時顯式調用applyBindings,Pager.js可以爲您做這些(通過適當清理之前部分的所有綁定)。