2016-05-16 2 views
0

Mein html sieht ungefähr so ​​aus:Knockout-Bindung an Teilansicht und jQueryUI Dialog

<div id="div-details"> 
    ... 
    <div title="Edit" class="edit-pop"> 
    ... 
    </div> 
</div> 

Und das ist, wie ich die Bindung tue:

var productVM = new ProductViewModel(); 
ko.applyBindings(productVM, document.getElementById('div-details')); 

Ich habe den zweiten Parameter zu übergeben, da es einen Drittanbieter-Code (wir haben keine Kontrolle darüber) über und unter Div-Details gibt, und sie auch Knockout benutzen.

Problem ist das Bearbeiten Popup-Dialog wird an den unteren Rand der Seite verschoben, so dass es nicht mehr innerhalb div-Details ist. Und die Knockout-Bindungen zum Bearbeiten funktionieren nicht. Irgendwelche Vorschläge, wie dies funktioniert?

Danke.

+0

Bitte den Code teilen verantwortlich für das Problem (dh Einfügen der Dialogmarkierung in das DOM). Ohne einen [mcve] ist es nicht wirklich möglich, dir zu helfen. – Jeroen

Antwort

0

Ohne Ihre Viewmodel-Code, ich Ihre Frage erraten konnte:

  • Sie Ihr "Produkt edting" Code in Ihrem "productVM"
  • gesetzt haben, wenn "div.edit-pop" ausrücken, Ihre Bindung wird nicht mehr funktionieren.

so die Lösung, die ich vorschlagen, ist:

  • teilen Sie Ihre bearbeiten Logik in ein anderes Modell "editModel"
  • bind "editModel" mit dem Pop div