здесь контекст для лучшего понимания:призывающего knockoutjs ViewModel функции
У меня есть DataGrid в моей главной странице с помощью кнопки в каждой строке. когда пользователь нажимает на него загрузить другую страницу с помощью Ajax JQuery и всплывать его в загрузочном окне модальное:
<script>
var sharedadminID = 0;
var alreadyloaded = 0;
...
function EditClick(args) {
var gridObj = $("#DetailsGrid").data("ejGrid");
var data = gridObj.getSelectedRecords()[0].ID;
sharedadminID = data;
$("#prdmodalbody").load("pages/modals/AddEditPRD.html");
}
</script>
страница AddEditPRD.html есть это ViewModel определяется как так
<script>
var PRDVM = function() {
ID = ko.observable();
DESIGNATION = ko.observable();
PRIX = ko.observable();
loadproduct = function() {
alert("innerloadproduct2222");
jQuery.ajax({
url: "/Admin/GetProduct?i=" + sharedadminID,
success: function (html) {
ID = html.ID,
DESIGNATION = html.DESIGNATION,
PRIX = html.PRIX
},
async: false
});
}
loadproduct();
};
$(document).ready(function() {
if (alreadyloaded == 0) {
VM = new PRDVM();
ko.applyBindings(VM, document.getElementById("#prdmodalbody"));
alreadyloaded = 1;
}
else
VM.loadproduct();
});
</script>
это работает, когда Я нажимаю кнопку в первый раз, но не после этого.
никаких ошибок на консоли, и кажется, что функция loadproduct не запускается за исключением первого раза.
любая помощь Приветственное
наблюдаемые подвергаются и правильно связаны, и они обновляются с помощью AJAX результат вызова, функция готовности вызывается каждый раз, когда я нажимаю кнопку редактирования родительской страницы – user2475096
. В любом случае моя главная проблема заключается в том, чтобы знать, почему метод loadproduct запускается только в первый раз. спасибо – user2475096
Нет, это не так, переменные 'наблюдаемые', такие как' ID' в вашем сообщении, * не * видны за пределами экземпляров функции конструктора модели представления. [Другой ответ] (http://stackoverflow.com/a/41381810/419956) ясно показывает разницу, поскольку это * делает * выставлять их, используя идиому 'self = this'. – Jeroen