Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions angular_day_02.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Angular

----------------------------
[TOC]


### Knowledge round-up

- **Component**

1. Briefly explain Event Binding in Angular?
`Answer: `
Event binding allows us to send information from the view to the component class.
2. Briefly explain Data Binding in Angular?
`Answer: `
Data Binding happen when we changes in the application state, data will automatically reflected into the view and from view to application.
3. What are Event Emitters and how it works in Angular?
`Answer: `
Event Emitter happen when we change a component, it will make a notification that something has changed, via events.
4. Explain the life cycle hooks of Angular application?
`Answer: `
In Angular, a component has a life cycle.
First, Angular create it, renders it, creates and renders its children, checks it when its data-bound properties change, and destroys it before removing it from the DOM.
Life cycle hooks provide us a visibility into components's key life moments and the ability to action when they occur.

5. Explain the `ContentChild` `ContentChildren` and write an example?
` Answer:`
`ContentChild` and `ContentChildren` is all show child projected content within the component, but children mean that it is a list of childs content.
`ContentChildren` will not be set until ngAfterContentInit component lifecycle hook.
@ViewChildren look for elements in Shadow DOM.
@ContentChildren look for them in Light DOM.

- **Extra**
- Briefly explain ElementRef in Angular? Write an example.
`Answer: `
ElementRef provides access to the underlying native element (DOM element).

----------------------------------


40 changes: 40 additions & 0 deletions angular_lesson_02.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Angular

----------------------------
[TOC]


### Knowledge round-up

- **Component**

1. Briefly explain Event Binding in Angular?
`Answer: `
Event binding allows us to send information from the view to the component class.
2. Briefly explain Data Binding in Angular?
`Answer: `
Data Binding happen when we changes in the application state, data will automatically reflected into the view and from view to application.
3. What are Event Emitters and how it works in Angular?
`Answer: `
Event Emitter happen when we change a component, it will make a notification that something has changed, via events.
4. Explain the life cycle hooks of Angular application?
`Answer: `
In Angular, a component has a life cycle.
First, Angular create it, renders it, creates and renders its children, checks it when its data-bound properties change, and destroys it before removing it from the DOM.
Life cycle hooks provide us a visibility into components's key life moments and the ability to action when they occur.

5. Explain the `ContentChild` `ContentChildren` and write an example?
` Answer:`
`ContentChild` and `ContentChildren` is all show child projected content within the component, but children mean that it is a list of childs content.
`ContentChildren` will not be set until ngAfterContentInit component lifecycle hook.
@ViewChildren look for elements in Shadow DOM.
@ContentChildren look for them in Light DOM.

- **Extra**
- Briefly explain ElementRef in Angular? Write an example.
`Answer: `
ElementRef provides access to the underlying native element (DOM element).

----------------------------------


60 changes: 60 additions & 0 deletions elementRef-app/.angular-cli.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"project": {
"name": "test-app"
},
"apps": [
{
"root": "src",
"outDir": "dist",
"assets": [
"assets",
"favicon.ico"
],
"index": "index.html",
"main": "main.ts",
"polyfills": "polyfills.ts",
"test": "test.ts",
"tsconfig": "tsconfig.app.json",
"testTsconfig": "tsconfig.spec.json",
"prefix": "app",
"styles": [
"styles.css"
],
"scripts": [],
"environmentSource": "environments/environment.ts",
"environments": {
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
}
],
"e2e": {
"protractor": {
"config": "./protractor.conf.js"
}
},
"lint": [
{
"project": "src/tsconfig.app.json",
"exclude": "**/node_modules/**"
},
{
"project": "src/tsconfig.spec.json",
"exclude": "**/node_modules/**"
},
{
"project": "e2e/tsconfig.e2e.json",
"exclude": "**/node_modules/**"
}
],
"test": {
"karma": {
"config": "./karma.conf.js"
}
},
"defaults": {
"styleExt": "css",
"component": {}
}
}
13 changes: 13 additions & 0 deletions elementRef-app/.editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Editor configuration, see http://editorconfig.org
root = true

[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
max_line_length = off
trim_trailing_whitespace = false
42 changes: 42 additions & 0 deletions elementRef-app/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# See http://help.github.com/ignore-files/ for more about ignoring files.

# compiled output
/dist
/tmp
/out-tsc

# dependencies
/node_modules

# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace

# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json

# misc
/.sass-cache
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
testem.log
/typings

# e2e
/e2e/*.js
/e2e/*.map

# System Files
.DS_Store
Thumbs.db
28 changes: 28 additions & 0 deletions elementRef-app/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# TestApp

This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.2.3.

## Development server

Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.

## Code scaffolding

Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|module`.

## Build

Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build.

## Running unit tests

Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).

## Running end-to-end tests

Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
Before running the tests make sure you are serving the app via `ng serve`.

## Further help

To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
14 changes: 14 additions & 0 deletions elementRef-app/e2e/app.e2e-spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { TestAppPage } from './app.po';

describe('test-app App', () => {
let page: TestAppPage;

beforeEach(() => {
page = new TestAppPage();
});

it('should display welcome message', () => {
page.navigateTo();
expect(page.getParagraphText()).toEqual('Welcome to app!');
});
});
11 changes: 11 additions & 0 deletions elementRef-app/e2e/app.po.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { browser, by, element } from 'protractor';

export class TestAppPage {
navigateTo() {
return browser.get('/');
}

getParagraphText() {
return element(by.css('app-root h1')).getText();
}
}
14 changes: 14 additions & 0 deletions elementRef-app/e2e/tsconfig.e2e.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/e2e",
"baseUrl": "./",
"module": "commonjs",
"target": "es5",
"types": [
"jasmine",
"jasminewd2",
"node"
]
}
}
33 changes: 33 additions & 0 deletions elementRef-app/karma.conf.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// Karma configuration file, see link for more information
// https://karma-runner.github.io/0.13/config/configuration-file.html

module.exports = function (config) {
config.set({
basePath: '',
frameworks: ['jasmine', '@angular/cli'],
plugins: [
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-jasmine-html-reporter'),
require('karma-coverage-istanbul-reporter'),
require('@angular/cli/plugins/karma')
],
client:{
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
coverageIstanbulReporter: {
reports: [ 'html', 'lcovonly' ],
fixWebpackSourcePaths: true
},
angularCli: {
environment: 'dev'
},
reporters: ['progress', 'kjhtml'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false
});
};
Loading