Иногда возникает необходимость триггерить клик, при котором нажата какая-либо клавиша(например Ctrl). Делается это довольно просто:
var event = jQuery.Event("click"); event.ctrlKey = true; jQuery(element).trigger(event);
Иногда возникает необходимость триггерить клик, при котором нажата какая-либо клавиша(например Ctrl). Делается это довольно просто:
var event = jQuery.Event("click"); event.ctrlKey = true; jQuery(element).trigger(event);
Testacular from v0.8.0 (2013-03-18) is called Karma.
Небольшая заметка о том, как достать scope, injector либо controller из элементов DOM. Делается это очень просто:
var scope = angular.element(domElement).scope()
var injector = angular.element(domElement).injector()
var controller = angular.element(domElement).controller()
angular.element – это алиас на расширенный JQueryLite. Т.е. можем свободно использовать селекторы.
При необходимости получить rootScope проделвываем теже действия только с элементом, который определен как корневой для Angular:
var rootScope = angular.element(domElement).scope()
чаще всего это body:
var rootScope = angular.element('body').scope()
Для начала абстрагируемся вообще от AngularJs и задач возложеных на 3 его метода provider, factory и service.
Попробуем представить, что у нас просто есть метод provider:
var provider = function(name, provider_) { [some code] }
и он как-то работает, как? – нас пока не интересует. Теперь посмотрим на код для метода factory:
function factory(name, factoryFn) { return provider(name, { $get: factoryFn }); }
из которго видно, что это просто обертка для provider.
Идем дальше: что же представляет собой service:
function service(name, constructor) { return factory(name, ['$injector', function($injector) { return $injector.instantiate(constructor); }]); }
– тоже обертка, только для factory.
Вот пример кода одной задачи реализованной 3мя способами.
Жду недождусь когда уже в продакшене можно будет использовать метод map() для массивов.
А пока его нет приходится использовать что-то такое:
или такое
Plunker – сервис, для совместной работы над JavaScript кодом. Но в отличии от того же jsfiddle, он позволяет просматривать правки кода в режиме реального времени, а в отличии collabedit – выполнять код.
Есть удобная авторизация через github. Да и сам проект из себя представляет open-source. Дальше, я так понял, проект планирует развить социальную соствляющую: пользователи, теги, обсуждения. На данный момент уже можно посмотреть разработки других людей, но пока еще нет поиска по коду.
Для тех кто не понял как запустить многопользовательское редактирование в режиме реального времени – заходим под кат.
Как оказалось делается очень просто. Нужно дописать строчку в файл конфигурации (*.ovpn):
auth-user-pass authfile.crd
и потом создать сам файл authfile.crd со следующим содержанием:
user password
И все больше пароль вводить не нужно.
Внимание! Должен напомнить о безопасности: при данной настройке( с сохранением пароля в открытом виде в файл) вы должны быть более чем на 100% уверены, что к нему не получит доступ другой человек.
UPD: статься обновлена 21.11.2015. Старое имя утилиты – Testacular
Karma – инструмент на node.js, позволяющий запускать JavaScript код в нескольких браузерах, нацеленная на поддержку TDD подхода.
Порой бывает очень удобно создавать несколько skype-аккаунтов и список контактов, чтобы не смешивать друзей и работу. Я так и делал: на работе был запущен аккаунт с заказчиками и сотрудниками, а дома – друзья. Т.е. одного запущенного клиента вполне хватало. Но после того, как на работе добавился еще отдельный корпоративный скайп, появилась необходимость в одновременном запуске сразу двух. Для тех, кто хочет знать как это организовать довольно просто на Ubuntu, прошу под кат.
В Ubuntu сразу не подхватывается DNS из OpenVPN подключения. Решается следующим образом – в конфигурационный файл ‘*.ovpn‘ в конец дописывается:
up /etc/openvpn/update-resolv-conf down /etc/openvpn/update-resolv-conf
а openvpn запускается со следующими флагами:
openvpn --script-security 2 --config config.ovpn