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 回答