我有一个具有函数“getProgramDetails”的 KnockoutJS 模型,它在下拉列表更改事件时被调用:
data-bind = "值:programId,事件:{change:getProgramDetails}"
这很好用,但是在我传入默认程序 ID 1 后,如何在页面加载时调用此函数?如果 programId 属性发生变化,有没有办法调用函数?而不是通过下拉列表的更改事件调用该函数。这可能会有所帮助。
这是我的模型:
<script type="text/javascript">
var UploadModel = function (programId) {
var self = this;
self.programId = ko.observable(programId);
self.fileType = ko.observable();
self.fileTypes = ko.observableArray();
self.getProgramDetails = function () {
if (self.programId() > 0) {
// get program budget level and file types
$.ajax({
url: '@Url.Action("GetProgramDetails", "FileLoader")',
data: 'programId=' + self.programId(),
dataType: 'json',
contentType: 'application/json; charset=utf-8',
success: function (data) {
$('#budget-level').html(data.BudgetBalance);
var jsonFileTypes = data.FileTypes;
// add default option
jsonFileTypes.unshift({ 'Id': '', 'Name': '-- Select One --' });
self.fileTypes(jsonFileTypes);
$('.allow-upload').fadeIn();
}
});
} else {
$('.allow-upload').hide();
}
};
};
ko.applyBindings(new UploadModel('1'), $('#container-upload')[0]);
</script>