Цитата:
Цитата:
Maxmaxmaximus7, объясни почему <div>, почему не <i></i>, или <m></m>, я с той позиции, что точка одна клавиша, а : -две |
Maxmaxmaximus7, ты юзаешь eval?
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
ui.directive('onClick', function(scope, element, attrs, params){ attrs = // {onClick: 'alert(11)'} params = // [exp] }); ну короче как-то так будет наверное, типа будет метод "распарсить параметры". exp обьект это обьект выражения который можно вызвать передав область видимости, обычно в них передается текущий скоуп exp($scope). Например в этом exp будет содержаться код алерта который мы можем выполнить в контексте чего либо, отслеживать изменения значения этого выражения и прочее. короче распарсили параметры |
или лучше вот так, не exp а сразу значения, exps хранятся в обьекте params и если надо можем достать, так проще, мы просим скоуп слушать изменения в обьекте параметров и как только они будут, мы будем переназначать css свойства )) к слову элемент поставляется в jQuery подобной коллекции как вы заметили.
<div css:position="panel.x, panel.y"> </div> ui.directive( 'cssPosition', function( scope, element, attrs, params ) { element.css( 'position', 'absolute' ); scope.$watch( params, function() { var x = params[0]; // 102 var y = params[1]; // 37 element.css( { 'left' : x, 'top' : y } ); } ); } ); хотим просто получить строку с параметрами и распарсить руками? не вопрос attrs['cssPosition'] // 'panel.x, panel.y' |
в принципе инстанцирование контроллеров было нужно только чтобы была возможность достучиваться до свойств родительских контролеров, и я подумал, а почему не сделать ТАК???? :D
<div ui:controller="Main"> <div ui:controller="Panel"> {name} // Панель {Panel.name} // Панель {Main.name} // Крот </div> </div> function Main() { name = 'Крот' } function Panel() { name = 'Панель' } за идею спасибо небезызвестному cyber |
Цитата:
|
как обращаться к внешнему контроллеру если внутри в таким же именем
короче я думаю вот на этом остановимся: <div ui:controller="ParentList = List('parent')"> <div ui:controller="List('child')"> {name} // child {List.name} // child (ParentList.name) // parent </div> </div> function List( newName ) { name = newName } И вводим негласное правило, имена контроллеров должны быть с заглавной буквы. Тут нет такого что вот конструктор с заглавной а сам инстанс с маленькой, нет больше ни какого инстанса, контроллер разворачиваетя в текущий скоуп. то есть вот контроллер function List() { name = 'list' } и когда мы напишем так <div ui:controller="List"></div> то текущий скоуп у нас станет таким var scope = {} scope.name = 'list'; scope.List = scope; -------- напишем так <div ui:controller="Ololo = List"></div> скоуп станет таким var scope = {} scope.name = 'list'; scope.List = scope; scope.Ololo = scope; короче все это типа ОПАСННО что перекроется ВНЕШНЕЕ бла бла бла, но это не так, с этим мы тоже поборимся |
Я возможно глупость сморожу, но все же:
По сути функции контроллеры использует тольку ui, почему бы не переписывать эти функции в локальный объект, и затирать их с глобального window. Цитата:
|
> так же как и ангуляр, тока скобки одинарные
Это как? Для каждого атрибута по отдельной директиве? Мне бы хотелось вот так: <a href="ya.ru" tabindex="{tabIndex}">ya.ru</a> > потому что в верстве описывается структура, это то место где мы все описываем и соединяем воедино, точки крепления css классов и лочки препления логики javascript. Точки крепления - да. Но не логика же вычисления условий. > Так же датабинлинг подобного типа лучше так как позволяет к одному контроллеру использовать разные шаблоны, так же контроллеры независимы от шаблонов и могут работать самостоятельно. Не контроллеры, а вью-модели. И они как-раз не могут быть без жесткого зацепления с шаблоном. Поэтому что они обеспечивают взаимосвязь верстки с логикой. > В общем то же что и в ангуляре. Тогда почему бы не использовать ангуляр? |
Часовой пояс GMT +3, время: 14:42. |