Показать сообщение отдельно
  #483 (permalink)  
Старый 03.02.2014, 14:10
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

Сообщение от Maxmaxmaximus7 Посмотреть сообщение
И еще ребят, вот тут уж точно с вами посоветоваться нужно, как лучше передавать параметры в директивы? Смотрите, вот в ангуляре там каждая директива принимает СТРОКУ и парсит её, выпарсивая из неё значения. она может воспринято эту строку как выражение и выполнить его через eval (так например события делают), может просто там какое-то слово подчерпнуть, число, и.т.п. НО СМОТРИТЕ, как сделать ДИНАМИЧЕСКИ ИЗМЕНЯЕМЫЕ ПАРАМЕТРЫ??


Допустим есть у нас директива fx:fire которая рисует тень из огня, и принимает она на вход 2 параметра, ширина огня и высота огня) ок.

Я хочу придумать способ как записывать эти параметры. Окей, все как записать и прочитать решает коечно директива и её код) но все же, я хочу придумать пиздатый стиль передачи параметров директивам.

Например можно сделать так fx:fire="10px 5px" по аналогии с css, но что если мы хотим динамически менять их? Тогда можно сделать так:

fx:fire="{panel.width + 10}px {panel.height + 5}px"

ок ок, но не кажется ли вам это как то тупо? вначале мы высчитываем значения выражений, подставляем их как строки в фигурыне скобки, получаем одну большую строку значения атрибута fx:fire потом передаем эту строку директиве fire и она ПАРСИТ её выдерая значения, и только потом уже применяет их. по моему как-то тупо, не проще ли сразу передать туда выражение?

типа fx:fire="panel.width + 10".

но вопрос, КУДА И КАК ПИХАТЬ ВТОРОЕ ЗНАЧЕНИЕ??? я короче придумал вот как делать, все что в значени атрибута оборачивается в квадратные скобки, получается массив =) это будет типа массив аргументов к директиве =) по аналогии с параметрами функции.

тогда становится гораздо проще описывать директивы, ни надо ни какого парсинга и прочего. если мы хотим, мы, внутри кода директивы, можем использовать тупо строковое значение директивы, еслиже хотм можем использовать массив аргументов (если все распарсено корректно то массив будет не пустой). Ну как вам идея?

Получается что мы сможем передать параметры директиве fire просто тупо через запятую, так, как будто мы функцию вызвали, и когда они изменятся директива автоматически об этом узнает.

грубо говоря мой вопрос в следующем, что более читабильно это или это?

fx:fire="panel.width + 10, panel.height + 5"

fx:fire="{panel.width + 10}px {panel.height + 5}px"
Заниматься вычислениями - задача вью-модели. На нормальном языке программирования. Где есть циклы, функции, объекты, наследование и прочая фигня. Не к чему реализовывать то же самое, но в шаблоне.
__________________
.ня
Ответить с цитированием