Модель ExtJS 4.2.1 — поле defaultValue:неопределенное не является функцией

StackOverflow https://stackoverflow.com//questions/20045144

Вопрос

В моем приложении я получил, например.две такие модели:

Ext.define('App.model.Translation', {
    extend: 'App.model.MRModel',
    requires: 'App.model.TranslationItem',

    fields: [
       ...
    ],...

и

Ext.define('App.model.administration.Station', {
    extend: 'App.model.MRModel',
    requires: [
        'App.model.Translation',
        'App.classes.proxy.ProxyNegotiator'            
    ],

    fields: [
        ...
    ],...

и в моей Model Station я хочу добавить поле со значением по умолчанию для нового перевода, например:

Ext.define('App.model.administration.Station', {
    extend: 'App.model.MRModel',
    requires: [
        'App.model.Translation',
        'App.classes.proxy.ProxyNegotiator'        
    ],

    fields: [
        { name: 'Id', type: 'int', convert: null },
        {
            name: 'Name',
            type: 'auto',
            convert: function(value) {
                ...
            },
            defaultValue: new App.model.Translation()
        },

хотя, когда я вставляю эту строку со значением по умолчанию, я получаю следующую ошибку: Uncaught TypeError: undefined is not a function Кажется, класс Translation не загружен..Я этого не понимаю, потому что добавил класс в массив require...

Пожалуйста помоги.

Это было полезно?

Решение

А defaultValue — это строка или объект, который должен быть значением по умолчанию.

Проблема в том, что new App.model.Translation() вероятно, не возвращает то, что вам нужно.Он должен возвращать пустую строку, 0 или что-то подобное (простое значение по умолчанию для Имя).

Если вы хотите перевести, вам следует использовать конфигурацию convert нравиться

convert: function(value) {
    App.model.Translation.translate(value)
},
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top