Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Application.requires (https://javascript.ru/forum/extjs/66790-application-requires.html)

Infarch 10.01.2017 19:11

Application.requires
 
Здравствуйте.

У меня вот такой теоретический вопрос: а что надо описывать в секции 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

Цитата:

Сообщение от Infarch (Сообщение 440262)
У меня вот такой теоретический вопрос: а что надо описывать в секции 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

Цитата:

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

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


Часовой пояс GMT +3, время: 05:10.