Проверка в Backbone.js - PullRequest
       2

Проверка в Backbone.js

1 голос
/ 07 марта 2012

Так что я использую backbone.js, чтобы взять несколько записей одновременно для определенного бита данных.Эти данные в конечном итоге сформируют график.Что мне нужно сделать сейчас, так это выяснить, как постоянно проверять три поля данных, введенные в один элемент, и повторяться в другом.

Вот код

<div class="grid_16 lb-bg"> <div class="clearfix form-box bot-p bot-m">
 <div >
 <label for="ClassTimes[{{ count }}].ClassId">Class</label>    <br/>
<select id="ClassTimes[{{ count }}].ClassId" name="ClassTimes[{{ count }}].ClassId" class="ClassList" style="Width: 20%">
    @foreach (var c in Model.Classes)
    {
        <option value="@c.Value">@c.Text</option>
    }
</select>
</div>
<div >
<label for="ClassTimes[{{ count }}].RoomId">Room</label>    <br/>
<select id="ClassTimes[{{ count }}].RoomId" name="ClassTimes[{{ count }}].RoomId" style="Width: 20%">
    @foreach (var c in Model.Rooms)
    {
        <option value="@c.Value">@c.Text</option>
    }
</select>
</div>
<div >
<label for="ClassTimes[{{ count }}].SessionId">Class Session</label>    <br/>
<select id="ClassTimes[{{ count }}].SessionId" name="ClassTimes[{{ count }}].SessionId" class="SessionList MakeWide" style="Width: 20%">
    @foreach (var c in Model.Sessions)
    {
        <option value="@c.Value">@c.Text</option>
    }
</select>
</div>
<div >
<label for="ClassTimes[{{ count }}].DayId">Day</label>    <br/>
<select id="ClassTimes[{{ count }}].DayId" name="ClassTimes[{{ count }}].DayId" class="MakeWide" style="Width: 20%">
    @foreach (var c in Model.Days)
    {
        <option value="@c.Value">@c.Text</option>
    }
</select>
</div>

Вот код магистрали

window.CreateAssign = (function () {
    var CreateAssign = {};

    var subs = new Array();
    //The next of kin item list view
    AssignItemView = Backbone.View.extend({
        tagName: 'div',
        initialize: function () {
            //bindall
            _.bindAll(this, 'render');

            this.template = _.template($('#SFTemplate').html());

            this.render();
        },
        render: function () {
            $(this.el).html(this.template({
                count: subs.length
            })).fadeIn();
            return this;
        }

        ,
        remove: function () {
            $(this.el).fadeOut('fast', function () {
                $(this).remove();
            });
            return false;
        }
    });

    function subUpdated() {
        if (subs.length > 0) {
            $('#removeassign').fadeIn();
        }
        else {
            $('#removeassign').fadeOut();
        }
    }

    CreateAssign.Init = function () {
        $('#addassign').click(function () {
            var item = new AssignItemView();
            subs.push(item);
            $('#classlist').prepend($(item.el).fadeIn('fast'));
            subUpdated();
            return false;
        });

        $('#removeassign').click(function () {
            if (subs.length > 0) {
                subs.pop().remove();
            }
            subUpdated();
            return false;
        });
    };
    return CreateAssign;
})(this, this.document);

$(function () {
    CreateAssign.Init();
});

Итак, этот код состоит из нескольких занятий, сеанса, комнаты и дня недели.

Моя проверка должна гарантировать, что не два класса выбраны для одного и того же сеанса в один и тот же день в одном сеансе.

Как бы я настроил события или что бы я использовал, чтобы посмотреть, какие данные были выбраны в предыдущем просмотре предметов?

Ответы [ 2 ]

1 голос
/ 07 марта 2012

Что ж, трудно сказать, не видя ни одного из ваших базовых партнеров, но если вы ищете подтверждение модели, позвольте мне рассказать о моем собственном программном обеспечении: Backbone.Validator .

Это миксин для класса Backbone.Model, который позволяет вам добавлять универсальные проверочные тесты в ваши модели и реализовывать значение по умолчанию в случае сбоя проверки (что также вызовет сообщение error).

Вы можете использовать одну и ту же модель для обоих видов в сочетании с проверкой, что обеспечит доступность значений в обоих представлениях и их проверку.

0 голосов
/ 08 марта 2012

Я решил не пытаться проверить на стороне клиента, а в коде позади.В контроллере я проверил входящий список на наличие таких столкновений и возвратил в форму уведомление об ошибке, если такой класс был найден.Работает достаточно хорошо.Я работаю над выделением конфликтующих предметов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...