来自 AJAX 调用的敲除数据未绑定
knockout data from AJAX call doesn't bind
我对淘汰赛还很陌生,我想弄清楚为什么下面的方法不起作用。出于某种原因,我从 ajax 调用返回的数据没有被转换成数组。
我有一个函数 returns 一些 JSON
bankingApi.client = (function () {
var getSafeFloatCash= function getSafeFloatCash() {
return $.ajax({
url: '/BackOffice/Banking/Banking/GetSafeFloat',
type: 'GET'
});
}
return {
getSafeFloatCash : getSafeFloatCash
};
})();
下面的函数returnsJSON:
[{"Denomination":"1p","Value":34.1200},{"Denomination":"2p","Value":98.0400},{"Denomination":"5p","Value":85.0500},{"Denomination":"10p","Value":571.2000},{"Denomination":"20p","Value":62.8000},{"Denomination":"50p","Value":57.5000},{"Denomination":"£1","Value":441.0000},{"Denomination":"£2","Value":398.0000},{"Denomination":"£5","Value":260.0000},{"Denomination":"£10","Value":320.0000},{"Denomination":"£20","Value":780.0000},{"Denomination":"£50","Value":350.0000}]
我设置了我的可观察数组
(function () {
var BankingViewModel = function () {
var self = this;
self.safeFloatDenominations = ko.observableArray();
var safeFloatCash = bankingApi.client.getSafeFloatCash();
self.safeFloatDenominations(safeFloatCash); // does not work!
self.safeTopUpValue = ko.computed(function () {
var total = self.floatRecommendedValue - self.safeFloatTotal;
return total.toFixed(0);
});
}
$(document).ready(function () {
var viewModel = new BankingViewModel();
ko.applyBindings(viewModel);
});
})();
如果我将从 ajax 调用返回的值粘贴到一个数组变量中,它工作正常,因此在将函数调用转换为数组时出现一些问题。
这是风景
<div class="row" data-bind="visible: safeTopUpValue()>0, foreach: safeFloatDenominations">
<div class="col-xs-5">
<input type="text" data-bind="value: Value" />
<label data-bind="text: Denomination"></label>
</div>
根据我的评论,$.ajax
没有 return 数据 - 它 return 是一个 承诺 。您需要使用它来实际获取数据:
var safeFloatCash = bankingApi.client.getSafeFloatCash();
safeFloatCash.done(function(d) {
//may need to parse the data:
//d = JSON.parse(d);
self.safeFloatDenominations(d);
});
我对淘汰赛还很陌生,我想弄清楚为什么下面的方法不起作用。出于某种原因,我从 ajax 调用返回的数据没有被转换成数组。
我有一个函数 returns 一些 JSON
bankingApi.client = (function () {
var getSafeFloatCash= function getSafeFloatCash() {
return $.ajax({
url: '/BackOffice/Banking/Banking/GetSafeFloat',
type: 'GET'
});
}
return {
getSafeFloatCash : getSafeFloatCash
};
})();
下面的函数returnsJSON:
[{"Denomination":"1p","Value":34.1200},{"Denomination":"2p","Value":98.0400},{"Denomination":"5p","Value":85.0500},{"Denomination":"10p","Value":571.2000},{"Denomination":"20p","Value":62.8000},{"Denomination":"50p","Value":57.5000},{"Denomination":"£1","Value":441.0000},{"Denomination":"£2","Value":398.0000},{"Denomination":"£5","Value":260.0000},{"Denomination":"£10","Value":320.0000},{"Denomination":"£20","Value":780.0000},{"Denomination":"£50","Value":350.0000}]
我设置了我的可观察数组
(function () {
var BankingViewModel = function () {
var self = this;
self.safeFloatDenominations = ko.observableArray();
var safeFloatCash = bankingApi.client.getSafeFloatCash();
self.safeFloatDenominations(safeFloatCash); // does not work!
self.safeTopUpValue = ko.computed(function () {
var total = self.floatRecommendedValue - self.safeFloatTotal;
return total.toFixed(0);
});
}
$(document).ready(function () {
var viewModel = new BankingViewModel();
ko.applyBindings(viewModel);
});
})();
如果我将从 ajax 调用返回的值粘贴到一个数组变量中,它工作正常,因此在将函数调用转换为数组时出现一些问题。
这是风景
<div class="row" data-bind="visible: safeTopUpValue()>0, foreach: safeFloatDenominations">
<div class="col-xs-5">
<input type="text" data-bind="value: Value" />
<label data-bind="text: Denomination"></label>
</div>
根据我的评论,$.ajax
没有 return 数据 - 它 return 是一个 承诺 。您需要使用它来实际获取数据:
var safeFloatCash = bankingApi.client.getSafeFloatCash();
safeFloatCash.done(function(d) {
//may need to parse the data:
//d = JSON.parse(d);
self.safeFloatDenominations(d);
});