我的代码的目标是搜索API搜索字符串:
因此,如果您填写表单,您将得到命中的bij名称。
我使用了以下Knockout.js脚本:
var viewModel=
{
query : ko.observable("wis"),
};
function EmployeesViewModel(query)
{
var self = this;
self.employees = ko.observableArray();
self.query = ko.observable(query);
self.baseUri = BASE + "/api/v1/search?resource=employees&field=achternaam&q=";
self.apiurl = ko.computed(function() {
return self.baseUri + self.query();
}, self);
//$.getJSON(baseUri, self.employees);
//$.getJSON(self.baseUri, self.employees);
$.getJSON(self.apiurl(), self.employees);
};
$(document).ready(function () {
ko.applyBindings(new EmployeesViewModel(viewModel.query()));
});html绑定是:
<input type="text" class="search-query" placeholder="Search" id="global-search" data-bind="value: query, valueUpdate: 'keyup'"/>但是如果我填满文本框,我只能得到默认的"wis“employees?我做错了什么?
发布于 2013-03-19 21:00:15
经过一番挖掘,我找到了一个解决方案。
var employeesModel = function(){
var self = this;
self.u = base +'/api/v1/search';
self.resource = 'employees';
self.field = 'achternaam';
self.employees = ko.observableArray([]);
self.q = ko.observable();
//Load Json when model is setup
self.dummyCompute = ko.computed(function() {
$.getJSON(self.u,{'resource': self.resource, 'field': self.field, 'q':self.q }, function(data) {
self.employees(data);
});
}, self);
};
ko.applyBindings(new employeesModel());发布于 2013-03-18 17:57:08
我不完全确定这里出了什么问题,但是您是否已经调试过它,并且看到了apiurl中query的值是什么?
一个潜在的问题是,您将employees作为可观察对象传递给getJSON,而不是底层数组,因此您可以尝试:
$.getJSON(self.apiurl(), self.employees());https://stackoverflow.com/questions/15473348
复制相似问题