我用jquery.load函數動態加載頁面,但加載頁面不綁定到viewModel?如何將knockout viewmodel綁定到動態加載頁面?
app.js
function viewModel(){
var self = this;
self.users = ko.observable();
Sammy(function() {
this.get("#/users",function() {
$.get("/api/users",function(data){
self.users(data);
});
$("#content").load("pages/users.html");
});
}).run("#/");
}
ko.applyBindings(new viewModel());
的index.html:
<html>
<body>
<div id="content"></div>
<script src="statics/js/lib/jquery-1.8.2.js"></script>
<script src="statics/js/lib/knockout-2.2.0.debug.js"></script>
<script src="statics/js/lib/knockout.mapping.js"></script>
<script src="statics/js/lib/sammy.js"></script>
<script src="statics/js/lib/app.js"></script>
</body>
</html>
頁/ users.html
<ul data-bind="foreach: users">
<li><span data-bind="text: fullName"></span></li>
</ul>
這是因爲在當前頁面的JavaScript有之前那麼新的內容是不知道的jQuery/JavaScript代碼的加載新的內容運行後,我的問題重新申請綁定。對於jQuery看看on()方法http://api.jquery.com/on/ –
@JayBlanchard jquery on()可以如何幫助我? – oguzh4n
你需要閱讀文檔 - 它可能不會幫助你,但它可能會指出你在正確的方向。如果沒有,您可以從這裏開始:https://www.google.com/search?q=binding+javascript+to+dynamically+added+content –