http://learn.knockoutjs.com/#/?tutorial=collectionsからのガイダンスに従って、選択リスト ボックスに入力することができます。しかし、私は2つの問題に直面しています。
- 選択したインデックスは 1 オフセットされます 私の年の選択リストはインデックスを選択しません。
http://jsfiddle.net/poundingCode/a9MGk/にフィドルを追加し、呼び出しからのデータをサーバーに追加しました。
私が最も困惑しているのは、BDay コントロールと BYear コントロールが実質的に同一であることです。基になるモデルと異なる唯一の点は、BYear が null 許容のデータ型であることですが、渡す値は null ではありません。
いつものように、どんなガイダンスも大歓迎です。
コード: `var Namespace = {};
// View model declaration
Namespace.initMemberVM = function (model) {
console.log('initViewCalled');
var memberViewModel = {
Id: ko.observable(model.Id),
BDay: ko.observable(model.Days[model.BDay]),
BMonth: ko.observable(model.Months[model.BMonth]),
BYear: ko.observable(model.Years[model.BYear]),
Company: ko.observable(model.Company),
FName: ko.observable(model.FName),
LName: ko.observable(model.LName),
Interests: ko.observable(model.Interests),
Married: ko.observable(model.Married),
MName: ko.observable(model.MName),
Name: ko.observable(model.Name),
SalutationId: ko.observable(model.SalutationId),
Salutation: ko.observable(model.Salutations[model.SalutationId]),
Months: ko.observableArray(model.Months),
Days: ko.observableArray(model.Days),
Years: ko.observableArray(model.Years),
Salutations: ko.observableArray(model.Salutations)
};
return memberViewModel;
};
1992"},{"Id":"1993"}],"Associations":"","BDay":2,"BMonth":2,"BYear":1983, "SalutationId":1, "FName": "James", "MName":"R", "LName":"Fleming", "Interests":"知りたいのは、年の選択ドロップダウンに 1983 という値が表示されないのはなぜですか??? そして、選択したインデックスが 1 ずれているのはなぜですか? SalutationId = 1 ですが、表示される値は SalutationId #2 のものです..."}; 1992"},{"Id":"1993"}],"Associations":"","BDay":2,"BMonth":2,"BYear":1983, "SalutationId":1, "FName": "James", "MName":"R", "LName":"Fleming", "Interests":"知りたいのは、年の選択ドロップダウンに 1983 という値が表示されないのはなぜですか??? そして、選択したインデックスが 1 ずれているのはなぜですか? SalutationId = 1 ですが、表示される値は SalutationId #2 のものです..."}; 知りたいのは、なぜ年の選択ドロップダウンに 1983 という値が表示されないのか??? そして、選択したインデックスが 1 ずれているのはなぜですか? SalutationId = 1 ですが、表示される値は SalutationId #2 のものです..."}; 知りたいのは、なぜ年の選択ドロップダウンに 1983 という値が表示されないのか??? そして、選択したインデックスが 1 ずれているのはなぜですか? SalutationId = 1 ですが、表示される値は SalutationId #2 のものです..."};
$(document).ready(function () {
var viewModel = Namespace.initMemberVM(data);
ko.applyBindings(viewModel);
});`
HTML
<article>
<h2>Summary</h2>
<label data-bind="text: FName"></label>
<table>
<tbody>
<tr><td>User Id</td><td colspan="4"><label data-bind="text: Name"></label></td></tr>
<tr>
<td>Salutation</td><td><select data-bind="options: Salutations, value: Salutation, optionsText: 'Name', optionsCaption: 'Select'"></select></td>
</tr>
<tr>
<td></td><td>First</td><td>Middle</td><td>Last</td>
</tr>
<tr>
<td>Name</td><td><input type="text" data-bind="value: FName"></td><td><input type="text" data-bind="value: MName"></td><td><input type="text" data-bind="value: LName"></td>
</tr>
<tr><td></td><td colspan="2">Month Day Year</td></tr>
<tr><td>DOB</td><td colspan="2">
<select name="BMonth" data-bind="options: Months, value: BMonth, optionsText: 'Name', optionsCaption: 'Select'"></select>/
<select name="BDay" data-bind="options: Days, value: BDay, optionsText: 'Id', optionsCaption: 'Select' "></select>
<select name="BYear" data-bind="options: Years, value: BYear, optionsText: 'Id', optionsCaption: 'Select'"></select>
</td><td> <label><input type="checkbox" data-bind="checked: Married">Married</label></td></tr>
<tr><td><label>Interests</label></td><td colspan="3"><textarea data-bind="value: Interests" rows="10" cols="40"></textarea></td></tr>
</tbody>
</article>