knockout.jsを用いたHTMLコードにおいて、セレクトボックスを変更時にknockoutイベントを用いて変更の是非を問い、キャンセルされた時はrollbackできるような機構を組み入れたいのですが、そのような仕組みは可能なのでしょうか。
(親パターンリストにおいても実装し、キャンセルされた場合は子パターンリストの内容を更新せず、元の値を保持するようにしたいです)
HTML
1<select data-bind="options: parentPatternList ,optionsText: 'label' , value: selectedParentPattern , event: { change: parentPatternChanged } "> 2<select data-bind="options: childPatternList ,optionsText: 'label' , value: selectedChildPattern , event: { change: childPatternChanged } "> 3</select>
JavaScript
1var ViewModel = function() { 2 parentPatternList: ko.observableArray([pattern1,pattern2,pattern3,pattern4]), // patternXには子パターンのリストが配列として入っています。 3 selectedParentPattern: ko.observable(), 4 childPatternList: ko.observableArray(), 5 selectedChildPattern: ko.observable(), 6 parentPatternChanged: function(event) { 7 paretnPatternChanged(); 8 },childPatternChanged : function(event) { 9 childPatternChanged(); 10 } 11}; 12 13function parentPatternChanged() { 14 var cp = selectedParentPattern() ? selectedParentPattern().childPatternList : null; 15 childPatternList(cp); 16} 17function childPatternChanged() { 18 // パターンによって他の部分に対し影響を与える(選択中の値によって表示するオブジェクトがあるなど)コードを記載。 19 // ここでは関係ないので省略 20} 21
あなたの回答
tips
プレビュー