2015-12-10 43 views
0

多重敲除結合。多重敲除結合功能和變量

我想只使用一個應用綁定而不是兩個應用綁定。一個是變量其他功能。我也使用requireJS。

HTML:

<button id= "Hand" name="Hand" 
        data-bind="click: Handler2"> 
      </button> 

KnockoutJS

function (ko, $) 
     {            
      function DM1ViewModel() { 
       var self = this; 
       self.bId = ko.observable('TEST456'); 

      } 
      $('#hide').hide(); 


     var DMD2 = { 
     Handler2: function() { 

      window.location='http:www.google.com'; 
     } 
    }; 

      ko.applyBindings(new DM1ViewModel(), document.getElementById('Container')); 
      ko.applyBindings(DMD2); 
      }); 
+0

這不是從你的樣品的目的是什麼明確的 - 容器是不可見的。您可以多次應用綁定,只要每個綁定指定一個單獨的非重疊元素。應用沒有元素的綁定適用於整個頁面,因此會與「容器」綁定衝突 – Quango

+0

@Quango:不可能只應用一個應用綁定。 –

回答

1

因爲它的立場,實在沒有理由在您的DMD2對象applyBindings因爲沒有任何可觀察那裏。

然而,更普遍回答你的問題,你有兩個選擇:

  1. 呼叫applyBindings爲DMD2針對不包含你的容器元素的元素,而不是已經包含您的容器元素中。

的Javascript:

// DM1ViewModel is the same 
var DMD2ViewModel = function() { 
    this.Handler2 = function() { 
     window.location='http:www.google.com'; 
    }; 
} 
ko.applyBindings(new DM1ViewModel(), document.getElementById('DM1Container')); 
ko.applyBindings(new DMD2ViewModel(), document.getElementById('DMD2Container')); 

HTML

<div id="Container"> 
    <div id="DM1Container"> 
     <h2 data-bind="text: bId"></h2> 
    </div> 
    <div id="DMD2Container"> 
     <h2 data-bind="click: Handler2">Click me</h2> 
    </div> 
</div> 
  • 讓有每個現有的視圖模型作爲觀測和使用一個父視圖模型with binding
  • Javascript:

    var PageViewModel = function(){ 
        this.dm1 = ko.observable(new DM1ViewModel()); 
        this.dm2 = ko.observable(DMD2); // currently isn't a function, so can't call new 
    } 
    
    ko.applyBindings(new PageViewModel(), document.getElementById('Container')); 
    

    在你的HTML:

    <div id="Container"> 
        <div data-bind="with: dm1"> 
         <h2 data-bind="text: bId"></h2> 
        </div> 
        <div data-bind="with: dm2"> 
         <h2 data-bind="click: Handler2">Click me</h2> 
        </div> 
    </div> 
    
    +0

    我想在沒有「綁定」的情況下使用 –

    +0

    更新了第一個選項以顯示如何使用2個綁定進行操作。看看是否有幫助 – TheRightChoyce