27.10.2013, 17:06
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Фреймворк Matreshka.js
Послезавтра, во вторник, выложу первую статью серии о моём фреймворке, а пока небольшая интрига:
Пр вызове кода внизу, таблица реагирует самостоятельно. Код реален и работает в Internet Explorer 8. Я поборол Object.defineProperty! Фак йеах.
Статья будет расположена по этому адресу: http://habrahabr.ru/post/196146/
Последний раз редактировалось FINoM, 27.10.2013 в 18:03.
|
|
28.10.2013, 11:45
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от FINoM
|
Пр вызове кода внизу, таблица реагирует самостоятельно
|
ангуляр
upd: http://learn.javascript.ru/play/MNhEd
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Последний раз редактировалось nerv_, 28.10.2013 в 11:57.
|
|
28.10.2013, 13:03
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Сообщение от nerv_
|
ангуляр
|
Не MVVM
Вся логика в JS, никакой логики в HTML.
var Example = Class({
'extends': MK.DOMArray,
constructor: function() {
this
.initMK()
.bindElement( this, 'table tbody' )
;
},
renderer: function( object ) {
return '<tr><td class="a"></td><td class="b"></td><td class="c"></td></tr>';
}
});
var ExampleObject = Class({
'extends': MK.Object,
constructor: function( o ) {
this
.initMK()
.jset( o )
.on( 'render', function() {
this.bindElement({
a: this.$( '.a' ),
b: this.$( '.b' ),
c: this.$( '.c' )
}, MK.htmlp );
})
;
}
});
|
|
28.10.2013, 13:41
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от FINoM
|
Не MVVM
|
не понял
Сообщение от FINoM
|
Вся логика в JS, никакой логики в HTML
|
а где ты увидел логику в html? Зато я у тебя вижу классы для выборки:
Цитата:
|
a: this.$( '.a' ),
b: this.$( '.b' ),
c: this.$( '.c' )
|
что, на мой взгляд, может вводить в заблуждение. Т.е. получается, нудно следить как минимум за служебными селекторами.
И получается что все "биндинги" необходимо писать в js коде. А их, как правило, много, вместо того, чтобы задать декларативно - дешево и сердито.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Последний раз редактировалось nerv_, 28.10.2013 в 13:43.
|
|
28.10.2013, 14:15
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Сообщение от nerv_
|
что, на мой взгляд, может вводить в заблуждение. Т.е. получается, нудно следить как минимум за служебными селекторами.
|
Это делается в цикле, пробегом по свойствам и выборкой элементов по селектору (например, data-key). Давай через несколько дней поговорим
|
|
29.10.2013, 14:28
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Хэхэй, смотри ссылку в первом посте.
|
|
30.10.2013, 00:50
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от FINoM
|
Не MVVM
|
вот теперь понял
Ознакомился со статьей на хабре.
Цитата:
|
Правильный способ (подробнее о методе .each в статье об MK.Object):
|
Цитата:
|
Я предпочитаю разграничивать «комплексные» элементы приложения таким образом, чтоб каждый элемент являлся элементарным классом (что я имею в виду, будет понятнее в статье о наследовании), привязок в котором не так много. Возможно, мой подход сильно деформирован убеждением о том, что JS код и HTML должны быть максимально разграничены: верстальщик верстает, а программист, если и вносит, то только минимальные и необходимые изменения.
|
Я об этом и толкую Любой верстальщик может декларативно задавать поведение, глядя на написанное ранее js програмистом. Если сомневается - не использует. Все просто.
Попытаюсь обосновать плюсы декларативности:
<div>
<input type="text" ng-model="model.field" />
</div>
- я вижу куда именно к модели привязан инпут, без необходимости лезть в js-код
- код привязок (биндингов) преимущественно "лапша". Только место занимает и внимание на себя отвлекает. Его, кстати, очень много в приложениях.
- возможность задавать поведение декларативно
<div ng-show="model.type[0|1]"></div>
- сходу не помню )
Цитата:
|
Цитата:
|
Обновлений в html будет много, а надо только одно, как этим управлять?
|
Почему вы так решили? ДОМ изменяется только тогда, когда меняется значение свойства:
|
DjDiablo об этом писал
Цитата:
|
Предложите, пожалуйста, какой-нибудь вариант решения.
|
Цитата:
|
Тут к сожалению нет решения, для js точно, в каком-нибудь TypeScript можно, а тут нет.
|
Цитата:
|
Искать по bindElement
|
Цитата:
|
Как-то нетривиально, а если ещё смешивать с какими-нибудь другими либами, вообще не представляю как люди будут ориентироваться в таком коде.
|
а как люди в борьще ориентируются?
p.s.: комменты на хабре веселят:
Цитата:
|
И снова зависимость от jquery
|
required: a computer
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
23.03.2015, 16:51
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Вышла первая версия Матрешки, ура! Как бонус, появилась полная, всеобъемлющая документация на русском: http://ru.matreshka.io/
Следите за блогом Матрешки на Хабре, скоро выйдет статья с подробностями
http://habrahabr.ru/company/matreshka/
|
|
23.03.2015, 17:02
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
nerv_, за годы работы с Матрешкой, ни разу не возникало проблем с байндингами внутри JS кода. Напротив, я многократно убедился, что никакой логики в HTML быть не должно.
|
|
23.03.2015, 17:30
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Сообщение от рони
|
при скролинге ie уходит в аут
|
Честно говоря, в ИЕ дяже не проверял. А какая версия?
|
|
|
|