0

いくつかのアイテムを編集するためのforeachがあります。各アイテムには「保存」ボタンがあります。ボタンの下にメッセージを表示したい。クリックイベント内にこのメッセージを表示するにはどうすればよいですか?これはhtmlです:

        <div id="divhorarios" data-bind="foreach: horarios">
    <div>
    <label>Fecha Ini: </label><input data-bind="value: FechaIni, datepicker: FechaIni, datepickerOptions: {dateFormat: 'dd/mm/yy'}" />
    <label>Fecha Fin: </label><input data-bind="value: FechaFin, datepicker: FechaFin, datepickerOptions: {dateFormat: 'dd/mm/yy'}" />
     <label>Nombre:</label> <input data-bind="value: Nombre"/>
    <br />
<button data-bind='click: $root.saveHorario'>Guardar</button>
    <br />
    <span data-bind="visible: showGuardado" style=" color: Green;">El horario ha sido guardado</span>
    </div>
    </div>

モデルのJavaScriptコードで、showGuardado = trueを設定しましたが、メッセージが表示されません。

var HorariosModel = function (horarios) {
    var self = this;


    self.horarios = ko.observableArray(horarios);


    self.guardarHorario = function (horario) {
        $.post('/admin/horariosjsonguardar/' + idModelo, horario, function (returnedData) {
            horario.showGuardado = true;
        });
    };
};
4

1 に答える 1

0

そこにすべてのコードがあるわけではありませんが、おそらく次のように変更する必要があります:-

self.horarios = ko.observableArray([]);
ko.mapping.fromJS(horarios, {}, self.horarios);

これにより、渡されたすべてのものがオブザーバブルに変わります。

ただし、クリックハンドラーを考えると、実際には、各配列アイテムのクリックを処理するものが必要になる可能性があります。これは、動作中のコードを示すフィドルです:-

http://jsfiddle.net/keith_nicholas/UqFP2/

このように、各ボタンは独立しており、それぞれに独自の緑色のメッセージがあります。

注:日付ピッカーを単純な入力に変更し、例のためだけに投稿を削除しました...

于 2012-07-05T11:28:48.393 に答える