Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 23.08.2014, 08:19
Аватар для FireVolkhov
Аспирант
Отправить личное сообщение для FireVolkhov Посмотреть профиль Найти все сообщения от FireVolkhov
 
Регистрация: 17.04.2013
Сообщений: 85

1. Использовать {{::value}} синтаксис, когда нет необходимости обновлять данные (доступно в 1.3.0 beta)
Пример

2. Делать больше DOM манипуляций в директиве
Вместо
<div ng-show=”something”></div>
$scope.something = false;
$scope.someMethod = function () {
  $scope.something = true;
};

Использовать
var menu = $element.find(‘ul’);
menu.hide();
$scope.someMethod = function () {
  menu.show();
};


3. По минимуму использовать фильтры в DOM
Вместо
{{ array | filter : expression : comparator }}

Использовать
scope.result = $filter('filter')(array, expression, comparator);


4. В часто вызываемых функциях mousemove, mouseover, mouseout и т.п. не использовать лишний раз $apply или $digest

Последний раз редактировалось FireVolkhov, 23.08.2014 в 17:25.
Ответить с цитированием
  #32 (permalink)  
Старый 23.08.2014, 10:12
Аватар для Aetae
Любитель
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 5,388

FireVolkhov, не проще тогда просто выкинуть angular на мороз и сразу писать по-человечески?)
В чём прикол фич которые всё равно нельзя использовать?)
__________________
29375, 35
Ответить с цитированием
  #33 (permalink)  
Старый 23.08.2014, 17:40
Аватар для FireVolkhov
Аспирант
Отправить личное сообщение для FireVolkhov Посмотреть профиль Найти все сообщения от FireVolkhov
 
Регистрация: 17.04.2013
Сообщений: 85

"и сразу писать по-человечески?)" это как?
Прикол фитч в том, чтобы использовать их вмеру
Ответить с цитированием
  #34 (permalink)  
Старый 23.08.2014, 23:01
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от FireVolkhov
1. Использовать {{::value}} синтаксис, когда нет необходимости обновлять данные (доступно в 1.3.0 beta)
не факт, что в stable будет эта возможность

Сообщение от FireVolkhov
2. Делать больше DOM манипуляций в директиве
Или неудачный пример... или... в чем смысл? Все равно watcher вешать и делать тоже самое, что и директивы ng-show|ng-hide. Т.е. выигрыша нет.

Сообщение от FireVolkhov
4. В часто вызываемых функциях mousemove, mouseover, mouseout и т.п. не использовать лишний раз $apply или $digest
уже писали)

---

Сообщение от Aetae
сразу писать по-человечески?)
научи =)
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 23.08.2014 в 23:03.
Ответить с цитированием
  #35 (permalink)  
Старый 24.08.2014, 00:34
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от nerv_
научи =)
Node.appendChild

Node.insertAdjacentHTML

... всему вас нужно учить


PS вообще, ни разу ещё не страдал от фильтров в DOM (профилирование, йопт)

больше всего ненавижу ng-view (или ui-view) или ng-repeat. и ещё $watch - обычно вырубаю его , где могу (т.е. где оно не нужно... а оно не нужно много где)
Ответить с цитированием
  #36 (permalink)  
Старый 24.08.2014, 11:45
Аватар для FireVolkhov
Аспирант
Отправить личное сообщение для FireVolkhov Посмотреть профиль Найти все сообщения от FireVolkhov
 
Регистрация: 17.04.2013
Сообщений: 85

Сообщение от nerv_
Или неудачный пример... или... в чем смысл? Все равно watcher вешать и делать тоже самое, что и директивы ng-show|ng-hide. Т.е. выигрыша нет.
Да пример может не совсем удачный вот другой, суть выходит сводится к "использовать минимум watcher'ов", стараться не использовать watcher для коммуникаций внутри директивы, только для работы с другими директивами, контроллерами, сервисами.
Ответить с цитированием
  #37 (permalink)  
Старый 24.08.2014, 22:51
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от FireVolkhov
Да пример может не совсем удачный вот другой
При таком примере "теряется" MVC - так я не могу управлять видимостью из модели. На мой взгляд ценность такой директивы невелика)

Кроме того
content.toggleClass('ng-hide', !show);
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #38 (permalink)  
Старый 12.04.2015, 23:07
Новичок на форуме
Отправить личное сообщение для STEVER Посмотреть профиль Найти все сообщения от STEVER
 
Регистрация: 03.06.2010
Сообщений: 4

я вот тут статью в тему перевел - "Оптимизируем AngularJS. Подробный разбор."
от Глеба Бахмутова
__________________
[URL="http://natebe.info"]natebe.info[/URL]
Ответить с цитированием
  #39 (permalink)  
Старый 07.05.2015, 13:49
Аватар для FireVolkhov
Аспирант
Отправить личное сообщение для FireVolkhov Посмотреть профиль Найти все сообщения от FireVolkhov
 
Регистрация: 17.04.2013
Сообщений: 85

nerv_,
Сообщение от nerv_
Сообщение от FireVolkhov
1. Использовать {{::value}} синтаксис, когда нет необходимости обновлять данные (доступно в 1.3.0 beta)
не факт, что в stable будет эта возможность
Стало частью stable можно дописывать

UPD:
Не делать многократного вложение директив в директивы, если нужна повторяющаяся логика использовать вложенные контроллеры
angular.module '...'
	.directive 'dateTextfield', ($controller, ...) ->
		link: (scope, elem, attrs) ->
			commonHintCtrl = $controller 'CommonHintCtrl',
				$scope: scope
				...

Последний раз редактировалось FireVolkhov, 08.05.2015 в 14:15.
Ответить с цитированием
Ответ



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

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