我有一個foreach循環,從中獲取現金和原始編號。 我在p標記和複選框之後使用複選框只返回true或false。從陣列淘汰中獲取信息js
<div data-bind="foreach : info">
<p data-bind="$data.cash"></p>
<p data-bind="$data.orig_id"></p>
<input type="checkbox" data-bind="Switch: $root.on_off"/>
</div>
我想要做的是使用複選框以更改數據庫中的東西,所以基本上我需要得到該複選框的orig_id。所以我想也許如果我添加點擊綁定它可能會給我orig_id,其中每個數組我從每個函數獲得,但沒有工作的課程。所以我的問題是,如何在每次點擊開關盒時獲得orig_id。
我試着在js上做這樣的事情,所以我可以從複選框輸入字段獲取orig ID。
self.sendCheckBoxInfo = function(data, event){
alert(data.orig_id);
}
<div data-bind="foreach : info">
<p data-bind="$data.cash"></p>
<p data-bind="$data.orig_id"></p>
<input type="checkbox" data-bind="Switch: $root.on_off, click : $root.sendCheckBoxInfo" />
如果在這裏需要的是交換機數據綁定代碼
ko.bindingHandlers.Switch = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
$elem = $(element);
$(element).bootstrapSwitch();
$(element).bootstrapSwitch('setState', ko.utils.unwrapObservable(valueAccessor())); // Set intial state
$elem.on('switch-change', function (e, data) {
valueAccessor()(data.value);
}); // Update the model when changed.
},
update: function (element, valueAccessor, allBindingsAccessor, viewModel) {
var vStatus = $(element).bootstrapSwitch('state');
var vmStatus = ko.utils.unwrapObservable(valueAccessor());
if (vStatus != vmStatus) {
$(element).bootstrapSwitch('setState', vmStatus);
}
}
的職位是相當不明確。首先,任何地方都沒有(可觀察的)數組。嘗試爲你的問題創建一個[mcve]。 – Jeroen
這很清楚,我問是否檢查過的數據綁定發送了除true或false以外的其他信息 –
您命名'viewModel'之後的參數將包含當前$數據,其中包括'orig_id'。見http://knockoutjs.com/documentation/custom-bindings.html –