javascript — функция Knockout Js не отображается на странице

У меня есть файл js с именем admin.js, который имеет функциональные возможности js нокаута.

function AppViewModel() {
var self = this;
self.alldata = ko.observableArray();
self.viewAllInvoice = function() {
$.ajax({
type: 'POST',
url: BASEURL + 'index.php/main/learn_Ko/',
contentType: 'application/json; charset=utf-8'
})
.done(function(invoices) {
alert("hello");
self.alldata.removeAll();
$.each(invoices, function(index, invoice) {

self.alldata.push(invoice);
});
})
.fail(function(xhr, status, error) {
alert(status);
})
.always(function(data) {});
};
self.viewAllInvoice();
}$(document).ready(function() {
ko.applyBindings(new AppViewModel(), document.getElementById('loanersclub_wrapper'));
});

Я пытаюсь вызвать функцию на этой странице следующим образом.

<script type="text/javascript" src="<?php echo base_url();?>js/admin.js" ></script>
<div style="margin-top:30px;" class="container" id="loanersclub_wrapper" class="wrapper">
<h1>HELLo</h1>
</div>
<div class="table-responsive">
<table class="table table-striped table-bordered table-condensed">
<thead>
<tr>
<th class="text-center">1</th>
<th class="text-center">2</th>
</tr>
</thead>
<tbody data-bind="foreach: alldata">
<tr>
<td class="text-center"><span data-bind="text: $data.Loantime "></span></td>
<td class="text-center"><span data-bind="text: $data.Amount"></span></td>
</tr>
</tbody>
</table>
</div>

Дело в том, что я получаю эти данные из контроллера, так как использую php, и я проверил, что контроллер действительно получает информацию в виде массивов, но файл js ничего не получает, я даже пытался использовать alert, но похоже функция self.viewAllInvoice не вызывается вообще.

1

Решение

Вам нужно либо установить значение BASEURL для базового URL вашего сайта, либо использовать относительный путь в вашем вызове ajax:

 $.ajax({
type: 'POST',
url: '/index.php/main/learn_Ko/',
contentType: 'application/json; charset=utf-8'
})
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]