Вход

Просмотр полной версии : Application.requires


Infarch
10.01.2017, 19:11
Здравствуйте.

У меня вот такой теоретический вопрос: а что надо описывать в секции requires моего Application?
Опытным путем нашел что там надо вписать все то что должно быть найдено по алиасу. Может есть еще какие-нибудь рекомендации, общие правила, best practices?
Есть ли смысл описывать виджеты в views и сторы в stores, если я не нуждаюсь в геттерах для них? Кто как делает?

XAPuTOH
11.01.2017, 08:46
У меня обычно там все мои компоненты:

Admin.*

сторы описанные в этом разделе помоему подгружаются сразу. Соответственно там можно загрузить какой нибудь общий стор.

Infarch
11.01.2017, 11:02
А со сторами там вообще очень интересно. Я добавил вывод в консоль в конструкторе стора. Стор имеет прописанную storeId. Я вижу вывод - конструктор был вызван. Он вызывается даже если storeId нет. А вот сторменеждер такого стора не знает! Надо его явно создать через Ext.create, тогда будет доступен. Странно...

nohuhu
12.01.2017, 21:55
У меня вот такой теоретический вопрос: а что надо описывать в секции requires моего Application?


Самые верхние View, глобальные Controllers и Stores. Остальное должно само подтянуться.

Sogl
13.01.2017, 03:44
Да, интересный момент. В демо-приложениях от Sencha тоже частенько вижу вот это:

Admin.*


Тем не менее, когда писал Fiddle этот:
https://fiddle.sencha.com/#fiddle/1mls

И попробовал вписать Fiddle.* в app.js, чтобы не заморачиваться с зависимостями, то получил такую ошибку:

Uncaught TypeError: Cannot read property 'prototype' of undefined
at constructor.applyMainView (ext-all-debug.js:95344)
at constructor.setter [as setMainView] (ext-all-debug.js:10542)
at constructor.<anonymous> (ext-all-debug.js:10521)
at constructor.initMainView (ext-all-debug.js:95129)
at constructor.onBeforeLaunch (ext-all-debug.js:95085)
at constructor.callParent (ext-all-debug.js:12490)
at constructor.onBeforeLaunch (ext-all-debug.js:95383)
at constructor.onProfilesReady (ext-all-debug.js:95019)
at new constructor (ext-all-debug.js:94988)
at constructor [as self] (ext-all-debug.js:13133)

Можете раскомментить и глянуть сами.

Я не знаю, связано ли это с реализацией Sencha Fiddle или что-то я пропустил, но в своем приложении на ExtJS 6.2 я также вписываю все вручную, ориентируясь на warning'и в консоли и здравый смысл. :)

nohuhu
13.01.2017, 22:22
И попробовал вписать Fiddle.* в app.js, чтобы не заморачиваться с зависимостями, то получил такую ошибку:


Fiddle использует динамическую загрузку, которая не парсит код и не может определить зависимости без requires. Cmd парсит и, соответственно, может.