bem / bem-mvc

Yet another MVC for i-bem
30 stars 27 forks source link

i-model__field_type_models-list .isChanged для только что созданной модели возвращает true #148

Closed kabzon13 closed 9 years ago

kabzon13 commented 9 years ago

Пример:

                BEM.MODEL.decl('list-with-internal-field', {
                    list: {
                        type: 'models-list',
                        modelName: 'model-with-internal-field'
                    }
                });

                BEM.MODEL.decl('model-with-internal-field', {
                    modelId: {
                        type: 'id',
                        internal: true  
                    },
                    field: 'string'
                });

                var model = BEM.MODEL.create('list-with-internal-field', { list: [{ modelId: 1, field: 'f' }] });

                model.isChanged() //true

Проблема была в том что, i-model__field_type_models-list._fixedValue хранил в себе массив значениями которого были результаты метода toJSON моделей, а toJSON модели не учитывает поля у которых internal: true. Поменял метод i-model__field_type_models-list.fixData. Сейчас i-model__field_type_models-list._fixedValue хранит массив значениями которого являются результаты метода getFixedValue моделей из своего списка.

dosyara commented 9 years ago

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