|
Результаты опроса: Как вам UI
|
|
Похоже на унылое говно
|
|
20 |
68.97% |
Однозначно буду использовать
|
|
7 |
24.14% |
Пока не разобрался что это
|
|
2 |
6.90% |
|
03.02.2014, 14:04
|
Профессор
|
|
Регистрация: 20.03.2008
Сообщений: 1,183
|
|
Сообщение от Maxmaxmaximus7
|
а фпизду, оставлю все 3 разделителя - . :
а сам буду использовать няшное двоеточие
|
Двоеточие используется для xmlns. Не стоит идти поперек стандартов.
__________________
.ня
|
|
03.02.2014, 14:07
|
Профессор
|
|
Регистрация: 20.03.2008
Сообщений: 1,183
|
|
Сообщение от Maxmaxmaximus7
|
кто еще не в курсе, ui приветствует распиздяйский но красивый стиль написания кода =)
1) не рекомендуется использовать точки с запятой, так как они не красивые
2) если не обьявлен var то переменная считается свойством контроллера, если обьявлен, то не считается
3) если идет приравнивание круглых скобочек, то считается что это формула, и вешается геттер, при обращении к которому значение формулы будет пересчитываться
4) сервисы доступны по умолчанию в любом месте кода контроллера, и их имена начинаются с бакса.
5) сервисы поддерживают ассинхронность, и если сервис поддерживает (а например встроенный сервис $http поддерживает) то после окончания запроса в поле в которое мы его присвоили (куда временно поместилась навидимая формула с промисом) поместится результат запроса.
|
Ну и изобретать свой язык тоже не стоит без острой необходимости, ибо дебажить потом это не ахти какое удовольствие.
__________________
.ня
|
|
03.02.2014, 14:10
|
Профессор
|
|
Регистрация: 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"
|
Заниматься вычислениями - задача вью-модели. На нормальном языке программирования. Где есть циклы, функции, объекты, наследование и прочая фигня. Не к чему реализовывать то же самое, но в шаблоне.
__________________
.ня
|
|
03.02.2014, 15:19
|
Профессор
|
|
Регистрация: 08.01.2014
Сообщений: 354
|
|
Сообщение от cyber
|
По сути функции контроллеры использует тольку ui, почему бы не переписывать эти функции в локальный объект, и затирать их с глобального window.
|
ну не знаю, вообще не принято будет пихать ихтак, правильнее создать свой модуль и в него засовывать их, типа
var app = ui.module('app'); // создаем модуль наследуем его от ui
app.controller('Main', function(){});
app.controller('Panel', function(){});
app.filter('fdf',function(){});
app.directive('fdf',function(){});
app.directive('fdf',function(){});
app.animation('fade',function(){});
ну вот в таком стиле)
Сообщение от cyber
|
О чем ты?
|
есть области видимости, а есть КОНТРОЛЛЕРЫ по уму контроллеры надо создавать в какую то ячейку области видимости:
типа
$scope.myPanel = new Panel();
и только через myPanel обращаться.
но ты дал мне понять что это тупо (а я и сам так считал просто с ангуляра слизал) и что можно делать контроллеры так
Panel.call($scope);
тогда не придется каждый раз писать myPanel чтобы обратится к свойствам контроллера.
ок, но как тогда быть если у нас панель в панели и мы хотим обратится к внешенй панели ?
Последний раз редактировалось Maxmaxmaximus7, 03.02.2014 в 15:25.
|
|
03.02.2014, 15:26
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Maxmaxmaximus7, хм может так
var panel = $scope.myPanel = new Panel();
myPanel.parent = panel;// пусть пользователь вручную добавляет, или ты создай parent которому при создание присваиваться this.
panel.call($scope);
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
03.02.2014, 15:33
|
Профессор
|
|
Регистрация: 08.01.2014
Сообщений: 354
|
|
Сообщение от tenshi
|
Мне бы хотелось вот так:
|
так и есть)
Сообщение от tenshi
|
Точки крепления - да. Но не логика же вычисления условий.
|
точки крепления) логика описана в контроллерах, взаимодействие с dom описано в директивах,директивы это такие специльные атрибуты.
Сообщение от tenshi
|
Тогда почему бы не использовать ангуляр?
|
потому что гш лучше чем ангуляр иначе бы я не начал её писать и использовал ангуляр, помимо того что она не содержит фатальный недостаток, она быстрее, сахарнее, и в ней есть куча фитч которых нет в ангуляре, таких например как FRP формулы и ассинхронные сервисы с кодом синхронных.
Сообщение от tenshi
|
Двоеточие используется для xmlns. Не стоит идти поперек стандартов.
|
не стоит не иди, ты может использовать и другие разделители) например - или точку.
Сообщение от tenshi
|
Ну и изобретать свой язык тоже не стоит без острой необходимости, ибо дебажить
|
ты волен писать и на обычном языке если у тебя проблема с отладкой, а так же дебжить если ты пишешьт в frp стиле не представляет труда) так как система имеет четкое состояние которое ты можешь хоть отрисовать)
Сообщение от tenshi
|
Не к чему реализовывать то же самое, но в шаблоне.
|
плюсики минусики я показал чтобы показать что это выражение и там оно "СЧИТАЕТСЯ" не более) так то конечно не стоит.
Последний раз редактировалось Maxmaxmaximus7, 03.02.2014 в 15:38.
|
|
03.02.2014, 15:37
|
Профессор
|
|
Регистрация: 08.01.2014
Сообщений: 354
|
|
cyber короче вот такими способами можно создать контроллер
<div ui:controller="List"></div>
<div ui:controller="List()"></div>
<div ui:controller="new List"></div>
<div ui:controller="new List()"></div>
<div ui:controller="Menu = List"></div>
<div ui:controller="Menu = List()"></div>
<div ui:controller="Menu = new List()"></div>
теперь надо придумать какими способами можно обращаться к его полям. может так?
<div ui:controller="Menu = new List()">
{name}
{List.name}
{Menu.name}
</div>
Последний раз редактировалось Maxmaxmaximus7, 03.02.2014 в 15:44.
|
|
03.02.2014, 15:43
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Сообщение от Maxmaxmaximus7
|
теперь надо придумать какими способами можно обращаться к его полям. может так?
|
ну да, зачем избретать велосипед.
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
03.02.2014, 15:44
|
Профессор
|
|
Регистрация: 08.01.2014
Сообщений: 354
|
|
cyber,
по поводу обращения к родительским контроллерам с такими же именами, вроде проблему решил:
<div ui:controller="MainMenu = new List()">
<div ui:controller="SubMenu = new List()">
{name} // sub
{List.name} // sub
{SubMenu.name} // sub
{MainMenu.name} // main
</div>
</div>
норм не? то есть ЕЕЕЕСЛИ ВДРУГ такое встретится что человек сделал один одноименный контроллер в другой и внутри внутреннего хочет обратится к полям внешнего, то он сможет сделать так
<div ui:controller="MainList = List">
<div ui:controller="List">
{name} // sub
{MainList.name} // main
</div>
</div>
он даст верхнему просто второе имя MainList и все) типа псевдоним
|
|
03.02.2014, 15:49
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Maxmaxmaximus7, угу только тебе прийдеться это все в доке описать, потратишь ты времени на доки
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
|
|