Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #521 (permalink)  
Старый 11.12.2013, 02:32
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от Maxmaxmaximus4
 
Регистрация: 08.12.2013
Сообщений: 142


я тут сижу пилю
и думаю, а ну его нафиг
лучше буду варнинг бросать а проблему автоматически решу, весь ui буду в таком стиле теперь делать чтобы хоть как-то работало а разработчику указ был.


ВОТ как делают отцы!!

п.с. человек не понимающий что тут написано не сделает этой ошибки =)

плюсы:

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


чтоб вы поняли, если в шаблоне если атрибут transclude то в конец этого элемента вставляется наша директива
replase означает что мы шаблоном заменяем директиву, а transclude внутри шаблона говорит что в это место надо вставить оригинальный элемент, и вот если у нас restrict E то есть директива это "элемент" то парсер парся шаблон, обнаружит там директиву qq И повторит операцию с её заменой на шаблон. И все улетит в рекурсию. Грубо говоря мы директиву заменяем на шаблон, пихаем в середину шаблона эту самую директиву на место которой только что поставили шаблон, шаблон парсится директива находится внутри шаблона и снова заменяется на шаблон и попадает внутрь этого шаблона. и так вечно =) я просто меняю имя директивы чтобы хоть как-то работало и бросаю об этом варнинг.

Последний раз редактировалось Maxmaxmaximus4, 11.12.2013 в 02:42.
Ответить с цитированием
  #522 (permalink)  
Старый 11.12.2013, 02:44
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Maxmaxmaximus4, не совсем понял, а если будет так
<div> div </div>

тоже заменит?
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #523 (permalink)  
Старый 11.12.2013, 02:51
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от Maxmaxmaximus4
 
Регистрация: 08.12.2013
Сообщений: 142

Сообщение от cyber
тоже заменит?
не, короче можно создавать директивы двух типов атрибуты и элементы

restrict : 'EA'

'E' - элемент, 'A' - атрибут или 'AE' - и то и то





пруф что работает:




ну и вот:




я replace true означает что мы именно заменяем директиву на шаблон, а не пихаем содержимое шаблона внутрь директивы
как это по умолчанию)

Последний раз редактировалось Maxmaxmaximus4, 11.12.2013 в 02:54.
Ответить с цитированием
  #524 (permalink)  
Старый 11.12.2013, 02:56
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от Maxmaxmaximus4
 
Регистрация: 08.12.2013
Сообщений: 142

если replace true и в коде шаблона встречается элемент у которого есть атрибут transclude, то оригинальный элемент который мы заменили на шаблон помещяется в конец этого элемента с атрибутом transclude. Так вот, если у нас restrict E, то есть директива действует только на элементы, и есть шаблон и replace true, и внутри шаблона есть элемент у которого есть атрибут transclude то мы щитай заменяем директиву допустим <qq></qq> на шаблон, потом вставляем её в шаблон, парсим шаблон, и парсер снова находит директиву и заменяет её, и рекурсия, ну ты понял. в случае если директива - атрибут, то я просто его удаляю, а тут имя элемента ни как не удалить.

Последний раз редактировалось Maxmaxmaximus4, 11.12.2013 в 02:58.
Ответить с цитированием
  #525 (permalink)  
Старый 11.12.2013, 03:00
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от Maxmaxmaximus4
 
Регистрация: 08.12.2013
Сообщений: 142

Дзен-трансгуманист, а у меня есть сервис, угадай как называется)?
$exeption он короче будет заниматься выводом ошибок на разных языках, выдает ссылки на форум по решению этой проблемы или ссылку на доки, и проче, сможет отсылать ошибки на сервер с кодами и.т.п. так же люди смогут использовать его внутри своих проектов чтобы пользователям допустим на экран ошибку выводить и прочее.

но пока я его не юзаю, и наверное зря, потом придется все throw и console.warn искать в коде и на него заменять=)


к слову юзать его оч просто, просто берешь и пишешь в коде

ui.service('$exeption')('*',function(error, type){
  ui.service('$http')('errors.php',{error:error,type:type}); //errors.php?error=text&type=type
})

// бросаем ошибку 
ui.service('$exeption')('error text','type')


это конечно грубо но я просто суть показал

Последний раз редактировалось Maxmaxmaximus4, 11.12.2013 в 03:08.
Ответить с цитированием
  #526 (permalink)  
Старый 11.12.2013, 03:11
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от Maxmaxmaximus4
 
Регистрация: 08.12.2013
Сообщений: 142

Дзен-трансгуманист, кстати знаешь почему я его не юзаю? потому что строку где произошла ошибка показывает не ту где ошибка а ту где код сервиса $exeption, и вот это бесит. по крайней мере когда ты программируешь и баги ловишь. а когда как пользователь сидишь то наверное уже удобно.
Ответить с цитированием
  #527 (permalink)  
Старый 11.12.2013, 03:13
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от Maxmaxmaximus4
$exeption он короче будет заниматься выводом ошибок на разных языках,
только пусть лучше будет выводить подобные ошибки только в режиме дебага.
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #528 (permalink)  
Старый 11.12.2013, 03:15
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от Maxmaxmaximus4
 
Регистрация: 08.12.2013
Сообщений: 142

в смысле если не повесишь на него обработчик то ни чо не будет выводить) а так просто вешаешь

ui.service('$exeption')(function(error,type){
  console.error(type+': '+error)
})
Ответить с цитированием
  #529 (permalink)  
Старый 11.12.2013, 03:33
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от Maxmaxmaximus4
 
Регистрация: 08.12.2013
Сообщений: 142

Дзен-трансгуманист, вы немного не поняли $exeption ловит и обычные ошибки которые throw если их бросли какие-то сервисы или чо-то такое. я просто для примера показал что можно вызвать ошибку вручную =)
Ответить с цитированием
  #530 (permalink)  
Старый 11.12.2013, 03:34
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от Maxmaxmaximus4
 
Регистрация: 08.12.2013
Сообщений: 142

Сообщение от Дзен-трансгуманист
Так потому что именно оттуда, где код сервиса, и происходит выброс.
спасибо кэп =) и происходит не выброс, а console.error()

Сообщение от Дзен-трансгуманист
которая собирает их имена и сам стек
нооо, ведь это хром автоматически делает О_О каждый обьект Error имеет stark и посмотреть его можно если ты делаешь console.error(errorObj) то в консоли где ошибка стрелочка появляется и там стек показывает) кэп

Последний раз редактировалось Maxmaxmaximus4, 11.12.2013 в 03:36.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск плагина Менеджер картинок serhio11 jQuery 2 27.01.2014 15:43
Автопереключатель картинок Vempel Общие вопросы Javascript 0 03.10.2013 18:36
Смишных видео с намеком тред godofjavascript Оффтопик 4 30.12.2012 23:50
Одинаковая высота картинок Irina13 Javascript под браузер 15 29.02.2012 12:06
Загрузчик картинок Livanderiaamarum Общие вопросы Javascript 1 15.01.2012 17:21