Knockout Js功能没有出现在页面上

时间:2016-02-02 21:32:25

标签: javascript php knockout.js

我有一个名为admin.js的js文件,它具有knockout js功能。

return [route_all] + [recursive_call_here]

我试图像这样调用此页面中的函数。

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'));
});

问题是,我从控制器获取此数据,因为我使用的是php,我检查控制器确实获取了数据信息,但是js文件没有得到任何东西,我甚至尝试使用alert,但似乎函数self.viewAllInvoice根本没有被调用。

1 个答案:

答案 0 :(得分:0)

您需要将BASEURL的值设置为您网站的基本网址,或者在您的ajax调用中使用相对路径:

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