Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.06.2016, 00:59
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Не находит модель No such Entity "Shop.model.test2.Test2"
Я сделал модель Shop.model.test2.Test2

И в итоге получил ошибку

Ext.data.schema.Schema.lookupEntity(): No such Entity "Shop.model.test2.Test2".

Хотя модель Shop.model.Test он находит.

Почему модель Shop.model.test2.Test2 не находит?
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #2 (permalink)  
Старый 11.06.2016, 01:18
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

интересное дело. Цифры 2 убрал, сразу нашел. Как так???
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #3 (permalink)  
Старый 13.06.2016, 21:16
Аватар для nohuhu
Профессор
Отправить личное сообщение для nohuhu Посмотреть профиль Найти все сообщения от nohuhu
 
Регистрация: 21.05.2015
Сообщений: 321

А класс Shop.model.test2.Test2 где-нибудь указан как зависимость?
Ответить с цитированием
  #4 (permalink)  
Старый 13.06.2016, 22:00
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Я модели не указываю в requery. А надо?
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #5 (permalink)  
Старый 13.06.2016, 22:32
Аватар для nohuhu
Профессор
Отправить личное сообщение для nohuhu Посмотреть профиль Найти все сообщения от nohuhu
 
Регистрация: 21.05.2015
Сообщений: 321

Конечно надо. Модель это класс, его надо загрузить. Чтобы загрузить, надо о нём знать.
Ответить с цитированием
  #6 (permalink)  
Старый 14.06.2016, 00:59
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Почему он тогда Shop.model.Test загрузил?
Разве в Sencha Cmd не избавились окончательно от require?
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #7 (permalink)  
Старый 14.06.2016, 03:16
Аватар для nohuhu
Профессор
Отправить личное сообщение для nohuhu Посмотреть профиль Найти все сообщения от nohuhu
 
Регистрация: 21.05.2015
Сообщений: 321

Сообщение от khusamov Посмотреть сообщение
Почему он тогда Shop.model.Test загрузил?
Точно не могу сказать, не видя кода. Вероятное объяснение: модель Shop.model.Test поименована где-то просто как Test, а поскольку её namespace совпадает с таковым для всего приложения, то имя класса было получено автоматически как App namespace + '.' + model name. Если вы указали это имя в массиве models какого-либо контроллера, то примерно так и произошло.

В случае же с моделью Shop.model.test2.Test2 такой подход уже не сработает, т.к. namespace Shop.model.test2 нигде не прописано. Для таких случаев есть конфиг namespaces: http://docs.sencha.com/extjs/6.0/6.0...cfg-namespaces

Цитата:
Разве в Sencha Cmd не избавились окончательно от require?
Конечно же нет. Большую часть случаев она отлавливает, но все 100% предусмотреть в принципе невозможно. Поэтому я всегда рекомендую не играть в лотерею, а указывать requires явным образом. Экономия 10 секунд на наборе имени класса может потом обернуться потерей часов на поиски странных багов.
Ответить с цитированием
  #8 (permalink)  
Старый 14.06.2016, 15:30
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Цитата:
Вероятное объяснение: модель Shop.model.Test поименована где-то просто как Test, а поскольку её namespace совпадает с таковым для всего приложения, то имя класса было получено автоматически как App namespace + '.' + model name.
Конечно я нигде полное имя класса не задаю. А именно Test. И вторую модель я точно так же описываю, а именно test2.Test2, но он его не грузит, а первый грузит.

Цитата:
т.к. namespace Shop.model.test2 нигде не прописано
Как это не прописан? Точно так же я прописал (namespace: "Shop.model"). Там вообще для всех моделей у меня прописан ns. В базовой модели.

Ext.define("Shop.model.Base", {
	
	extend: "Ext.data.Model",
	
	requires: ["Ext.data.proxy.Direct"],
	
	fields: [{
		name: "id",
		type: "number"
	}],
	
	schema: {
		namespace: "Shop.model",
		urlPrefix: "Server",
		proxy: {
			type: "direct",
			api: {
				create: "{prefix}.{entityName}.create",
				read: "{prefix}.{entityName}.read",
				update: "{prefix}.{entityName}.update",
				destroy: "{prefix}.{entityName}.destroy"
			},
			//<debug>
			withCredentials: true,
			//</debug>
			reader: {
				type: "json",
				rootProperty: "data",
				messageProperty: "message"
			}
		}
	}
	
});
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #9 (permalink)  
Старый 14.06.2016, 15:33
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

В общем он заработал, если убрать двойки

stores: {
		testStore: {
			model: "test.Test",
			autoLoad: true
		}
	}


Таким образом, sencha не любит в именах моделей цифры. Могли бы и написать.
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #10 (permalink)  
Старый 14.06.2016, 15:34
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Кстати, я про двойки уже писал. То есть вопрос другой теперь. Чего это сенча экст не любит цифры в именах моделей? Это дискриминация такая?
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ExtJS5 - модель и схема Infarch ExtJS 11 18.11.2016 01:19
Как изменить поля в модели? Или как пересоздать модель? Risa ExtJS 3 20.02.2015 12:47
Как в Backbone изменять модель в подвью? ilya_ Backbone.js 1 20.01.2015 06:09
После добавления localstorage в backbone модель, POST запрос ничего не возвращает aphex Общие вопросы Javascript 0 03.12.2013 15:26
раскрывающийся и закрывающися текст при клику hardware jQuery 4 19.08.2013 16:16