Eminim ki burada bir şeyi yanlış anlamışımdır, ancak benim yaşamım boyunca bunu yapamam.Bir jquery ui iletişim kutusunu doldurmak için Jquery yükünü kullanırken boşaltma bağlantıları
Form açılır penceresi oluşturmak için jquery ui iletişim kutusu kullanıyorum. Formun görünümü ayrı bir dosyadadır, bu yüzden diyaloğu açmak için iletişim kutusunu doldurmak için Jquery.load() kullanıyorum.
Daha sonra nakavt bağlamalarını uygulamak istiyorum.
Sorunumu bazı basit kodlarla yeniden oluşturdum.
Ana html dosyası:
<script src="knockout-3.4.0.js"></script>
<script src="Jquery/jquery-1.12.2.js"></script>
<script src="jquery-ui-1.11.4/jquery-ui.js"></script>
<link rel="stylesheet" type="text/css" href="jquery-ui-1.11.4/jquery-ui.css"">
<script>
$(document).ready(function(){
//initialise the dialog
$("#dialog").dialog({
modal: true,
autoOpen: false
});
$("#btn").click(function(){
//open the dialog and load the html from the Popup page
$("#dialog").load('Popup.html').dialog("open");
//apply a simple binding to the container div in the Popup page
ko.applyBindings({someText: "value from knockout"}, $("#container")[0]);
});
});
</script>
<button id="btn">Click</button>
<div id="dialog" style = "display: none;">the hidden Div</div>
Popup html dosyası:
<div id="container">
<p data-bind="text: someText">Default text in html popup</p>
</div>
Ben değiştirin
ko.applyBindings({someText: "value from knockout"}, $("#container")[0]);
setTimeout(function(){
ko.applyBindings({someText: "value from knockout"}, $("#container")[0]);
},200);
ile
Ardından dosya çalışır (beklendiği gibi küçük bir gecikmeyle de olsa), ancak bu 'doğru' cevap gibi hissetmez. Bu, applyBindings'in çok hızlı bir şekilde çalıştığına inanmamı sağladı. Bu yüzden, $ .load() 'ın geri çağrılmasına çalıştım ama aynı sonucu elde ediyorum.
Gerçekten belirgin bir şey eksik mi?
Bkz Ben bu kadar basit inanamıyorum:
bunu yapmanın en kolay yolu bir geri çağırma işlevi sağlamaktır! Bir geri arama denediğimi sandım ama belli ki yanlış bir şey yaptı! Teşekkürler, başımı masanın üzerinde daha fazla patlamadan kurtardınız (bugün!). – Andy