powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / backbone.js
4 сообщений из 4, страница 1 из 1
backbone.js
    #38742162
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
здравствуйте

у меня есть модель:

Код: javascript
1.
var model = new (Backbone.Model.extend());



представление (использую дополнительно Backbone.ModelBinder.js):

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
var BackboneView = Backbone.View.extend({
        _modelBinder: undefined,
        template: _.template($("#task-template").html()),
        el: $("#taskViewContainer"),
        initialize: function () {
            this._modelBinder = new Backbone.ModelBinder();
            this.listenTo(this.model, 'change', this.render);
        },

        render: function () {

            $(this.el).html(this.template(this.model.toJSON()));

            var bindings = {
                Name: '[id=inputName]',
                IsMain: '[id=cbMain]',
                IdType: { selector: '[id=selectType]' }
            };

            this._modelBinder.bind(this.model, this.el, bindings);
            return this;
        }

    });



сохранение делаю так:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
window.buttonSave_click = function () {
        var param = new Object();
        param.dto = model;

        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "TaskWebService.asmx/Save",

            data: JSON.stringify(param),

            dataType: "json",
            beforeSend: function (xr) {

            },
            success: function (data, textStatus) {

            },
            error: function (XHR, errStatus, errorThrown) {
                var err = JSON.parse(XHR.responseText);
                var errors = JSON.parse(err.Message);
                //тут надо как-то выделить контролы, которые связаны со свойствами, для которых на серверной стороне произошли ошибки валидации
            }
        });
    };



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
[WebMethod(EnableSession = true)]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public void Save(Task dto)
        {
            List<ErrorTarget> messages = new List<ErrorTarget>() 
            { 
                new ErrorTarget(){ PropName = "Name", ErrorDescription="Не верный формат имени"},
                new ErrorTarget(){ PropName = "Name", CollectionName="Events", ItemIndex = 2, ErrorDescription="Не верный формат названия"},
                new ErrorTarget(){ PropName = "Name", CollectionName="Events", ItemIndex = 4, ErrorDescription="Не верный формат названия"}
            };
            
            string messageJSON = null;
            using (MemoryStream stream = new MemoryStream())
            {
                DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(List<ErrorTarget>));
                ser.WriteObject(stream, messages);
                stream.Position = 0;
                using (StreamReader sr = new StreamReader(stream))
                {
                    messageJSON = sr.ReadToEnd();
                }
            }

            throw new BLLException(messageJSON);
        }



вот такой шаблон вывода:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
<script type="text/template" id="task-template">
    <table>
        <tr>
            <td>Наименование</td>
            <td><input value='{%- Name %}' id='inputName'></td>
        </tr>
        <tr>
            <td>Тип</td>
            <td>
                <select id='selectType'>
                    {% _.each(taskTypeList, function(e) { %}
                    <option {%- IdType==e.Id?'selected':'' %} value='{%- e.Id %}'>{%- e.Name %}</option>
                    {% }) %}
                </select>
            </td>
        </tr>
        <tr>
            <td>Основная</td>
            <td><input id='cbMain' {%- IsMain?'checked':'' %} type='checkbox' /></td>
        </tr>
    </table>
    <div>События:</div>
    <table>
        <tr>
            <th>ID</th><th>Name</th>
        </tr>
        {% _.each(Events, function(e) { %}
        <tr>
            <td>{%- e.Id %}</td>
            <td>{%- e.Name %}</td>
        </tr>
        {% }) %}
        </tr>
    </table>
    </script>



вопрос: как сделать подсветку контролов для messages. или какой-то другой подход.

спасибо
...
Рейтинг: 0 / 0
backbone.js
    #38742164
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пометить контролы с ошибкой данных
...
Рейтинг: 0 / 0
backbone.js
    #38748757
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmaw,

Непонятен вопрос исходя из больших кусков кода - вы привели все что вы делаете но не рассказали что должно быть и что не получается
...
Рейтинг: 0 / 0
backbone.js
    #38748761
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spkmaw,

Непонятен вопрос исходя из больших кусков кода - вы привели все что вы делаете но не рассказали что должно быть и что не получается

пометить контролы с ошибкой данных. но уже разобрался
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / backbone.js
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]