Comments (13)
Т.е. проверять, если в прототипе есть hasOwnProperty onhtmlinit
, то сразу биндить его на соответствующее событие?
Еще один минус событий -- в отличие от методов они не наследуются (хотя мы и не часто наследование используем, все равно)
from noscript.
А может быть надо сделать наследование событий, нет?
from noscript.
Может быть.
Собссно вроде я в наноблоках такое делал.
from noscript.
Т.е. проверять, если в прототипе есть hasOwnProperty onhtmlinit, то сразу биндить его на соответствующее событие?
Да. С этим-то всё ок? Делаем?
from noscript.
Да, это думаю полезно.
Леша? /cc @doochik
from noscript.
По мотивам устного обсуждения.
Я хочу определять view/model'и как-то так:
var messages = {};
messages.methods = {};
messages.methods.foo = function() {
...
};
messages.events = {};
messages.events.onhtmlinit = function() {
...
};
messages.events.onFoo = 'foo';
no.define('messages', messages);
Потом я просто из корня проекта grep'ом легко нахожу, что угодно, например, messages.events.onhtmlinit
.
Сравни с вариантом типа:
var events = {
'onhtmlinit': function() {
...
},
...
};
Плюс еще париться про запятые при комментировании/удалении/перестановке кусков кода.
Вот.
Другой вопрос -- нужен ли этот синтакс-шугер, чтобы метод onhtmlinit
автоматически биндился как соответствующее событие.
from noscript.
Парирую тем, как сейчас мы это делаем:
var methods = {};
methods.foo = function() {
...
};
methods.onhtmlinit = function() {
...
};
no.define('messages', {
events: {
'foo': 'foo',
'htmlinit': 'onhtmlinit'
},
methods: methods
});
from noscript.
Ну вот тут та же проблема -- по строчке methods.onhtmlinit
непонятно, чей именно это метод.
Вот, например, все ast-классы в yate определены в одном файле: https://github.com/pasaran/yate/blob/master/lib/asts.js
И их очень легко искать.
Что в редакторе, что грепом.
from noscript.
Ну ты ведь видишь имя файла когда грепаешь?
Там понятно будет, что это view и завётся оно messages.
from noscript.
я почему то никогда не ищу view.prototype.onhtmlinit, а иду в определение view и смотрю туда :)
from noscript.
Ну когда у тебя этих файлов 5-10-15 -- более-менее. У меня в яте тоже так было поначалу.
Потому, когда их под сотню становится, понимаешь, что когда они в одном файле -- это проще и легче и быстрее.
from noscript.
А когда 10 больших файлов в одном? )
from noscript.
А чё-то действительно, можно же сразу писать function в events. Тогда, наверно, можно и не делать. Эти методы обычно больше нигде не нужны сами по себе.
from noscript.
Related Issues (20)
- Не переходить по ссылке, если был preventDefault HOT 5
- Нет доков про интерполяцию в ns.layout HOT 2
- Падает ns.page.go на сервере HOT 5
- Унести ns.VERSION в build шаблоны HOT 1
- Улучшения работы с памятью в разрезе видов HOT 4
- show может быть вызван на дочерних видах до того, как родительский вид физически окажется в DOM'е. HOT 2
- Сломались тесты где-то по дороге HOT 5
- ns.Model.paramsRewrite ломает последовательность параметров в ключе HOT 15
- Затирается список моделей в коллекции после события ns-model-insert HOT 1
- Лишние подписки для события ns-model-insert и ns-model-remove для моделей неколлекций
- Нужно абортить ns.Update если в момент начала отрисовки у модели state=invalid HOT 30
- Асинхронный вид c невалидными моделями запускает на себе update() и получает error моду HOT 1
- ns.ViewCollection которая зависит от модели коллекции и ещё от какой-то невалидной модели - boom HOT 3
- `ns.page.history.replace` превращает историю в каламбур
- Не гарантируется консистентность перерисовки приложения HOT 3
- После перерисовки верхнеуровневого вида со вложенным боксом внутри бокса оказывается 2 ноды вложенного вида
- Поддержать отправку запроса в виде JSON
- Зафиксировать версию [email protected]
- Поддержать serverId для запроса моделей под другим именем
- JSON request format replaces spaces with pluses HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from noscript.