Цитата:
Цитата:
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, время: 20:23. |