-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Слабая документация проекта #235
Comments
return: And,
return: But, this code work like need
|
exports.urls = {
'/news/:id': 'inject'
}; Этот конфиг позволит заинитить модули, инит которых должен произойти по изменению id новости в state.То есть когда в url будет вот так: // Внутри корневого модуля, метод changeState:
changeState: function(diff) {
if ('news' in diff) {
slot.init(...)
}
} |
Добавил в news.js (или надо в другое место ?)
в config.js
Получил: P.s.: А если хочу по /news получить все новости ? |
@iDevPro только хотел написать, что нужно слешик убрать) |
Проблема в том что он в модуль вообще не заходит, потому что ни init, ни changeState не обрабатываются, так как console.log ))) пуст :( Очень странно: slot@0.10.2 |
@iDevPro смотри, все работает примерно так: у тебя есть главный модуль, который указывается в конфиге проекта (exports['mainModule'] в config/base). Этот главный модуль будет интить модули по умолчанию, например, и слушать state в методе changeState и инитить модули для текущего стейта и diff. Каждый модуль так же может слушать изменения в стейете и как-то реагировать на это. То есть, у тебя есть некий корневой модуль, который инитит все остальное. От этого и надо плясать) |
@iDevPro тут еще немного инфы: https://devday.ru/report/153 |
Если я правильно понимаю, то mainModule = index.(js/html/css) ? Простите за глупые вопросы, но пока до меня толком не доходит как начать его использовать, с Ember чуть проще... но хочется перейти на наше, родное :) |
artem-malko Спасибо. попробую разобаться через |
@iDevPro вот, что-то я забыл про него сказать) |
Как добавить bootstrap в проект ? Решил, но в браузере не видно его по умолчанию в ресурсах :))) |
@iDevPro это уже не вопрос фреймворка) Поумолчанию, со слотом идет совсем простая сборка на gulp. Вы можете сами ее расширять так, как вам будет удобно. |
Все равно пока не доходит как сделать приложение :) |
@iDevPro смотри, в общем виде все выглядит так: |
Если я правильно понимаю, то прописав этот код в root модуле, я должен в консоли увидеть diff, однако я не вижу ничего :( |
Все верно. Только вам необходимо, чтобы что этот diff создовало. $appState.push по какой-нить ссылке. В TODO как раз есть примеры того, как в state что-то пропихнуть |
Хитрость в том что в Todo, используются ссылки следующего вида |
@iDevPro привет! Да, проекту не хватает документации, и мы по чуть-чуть исправляем эту ситуацию, но в любом случае можно посмотреть непосредственно в код если есть необходимость. По поводу вопроса. С простыми ссылками вида function activateModule(moduleName) {
$appState.del('news');
$appState.del('about');
$appState.set(moduleName);
$appState.push();
} При большем количестве одиночных фрагментов URL эта функция также будет расти, что не очень хорошо, лучше стремится к простоте и краткости. Именно поэтому мы рекомендуем использовать для "страниц" одной категории обобщающий URL вида Одиночные фрагменты в URL мы используем для флагов состояния приложения, если их необходимо сохранить между сеессиями и если они не исключают друг друга. В 2gis.ru, например, есть одиночный фрагмент Одиночный фрагмент внедрить в url можно, добавив в exports.urls = {
'about': 'injectTrue'
}; И установив значение из кода: $appState.set('about', true);
$appState.push(); Для проверки его наличия в приложении: $appState.get('about'); Сделал небольшое тестовое приложение https://github.com/myshov/slotapp по мотивам |
Спасибо. Попробую разобраться.
Вот как раз и не доходит как сделать, к примеру: |
Если верить данному: http://www.slideshare.net/DevDay/slot-good-parts-50970458 (40 слайд)
которая выведет P.S.:
|
На слайде показаны результаты парсинга URL в стейт. Если вы переходите по ссылке $appState.set('news', {newsId: 2});
$appState.push() и уже после этого changeState: function(diff) {
console.log(diff);
} выведет в консоль то, что изменилось в appState, а именно { news: { newsId: 2}} |
Спасибо за пояснение, однако странно что:
Мне кажется оба варианта одно и тоже, однако:
// AppState такой AppState :(
Вопросы в следующем: |
Ребят, вопрос нубский - насколько ваш слот схож по структуре с Экспрессом? Просто хотели на вашем писать, отдали на анализ тем кто больше нас понимает - сказали нам что сыроват слот, а так как стек мы выбрали MEAN - решили не городить огород и писать на "искаропки". Но хочется конечно вас поддержать, бесспорно. |
И снова я, с глупыми вопросами. Вторая попытка понять Slot ;) Учитывая все выше изложенное, верно ли я понимаю:
|
Почему |
Добрый день, команда 2GIS.
Решил попробовать ваш фреймворк, однако начинаю наступать на грабли, похоже детские...
./components/appState/conf.js
до конца не ясно :)
Думаю, что не я один могу столкнуться с проблемой понимания работы фреймворка.
Прошу дополнить документацию и убрать лишнее. К примеру в двух документах описывается одно и тоже но разными подходами :(
The text was updated successfully, but these errors were encountered: