赞
踩
npm install --save jquery
npm install @types/jquery --save
import * as $ from 'jquery';
前提:在./assets/js/目录下添加jquery.min.js文件
<script type="text/javascript" src="./assets/js/jquery.min.js"></script>
declare let $: any;
前提:执行1.1.1的两行命令
"scripts": [
"./node_modules/jquery/dist/jquery.js"
]
declare let $: any;
HTML:
<app-mode-one [windowHeightRight]="windowHeightRight"></app-mode-one>
ts:
windowHeightRight: number = $(window).height();
HTML:
<div class="modal-body" [style.height]="oneHeight"></div>
TS(方式一:@Input和OnChanges):
import {Component, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core'; export class ModeOneComponent implements OnInit, OnChanges { oneHeight = ''; @Input('windowHeightRight') windowHeightRight: number; ngOnChanges(changes: SimpleChanges): void { //通过OnChanges钩子进行监听,对输入值进行特殊处理;如果不需要处理,则不需使用OnChanges for (const propName in changes) { if ('windowHeightRight' === propName) { const propValue = changes[propName]; if ( !propValue.isFirstChange() ) { this.oneHeight = this.windowHeightRight * 0.5 + 'px'; } } } } }
【说明】: OnChanges类用于父组件传值监听,如果windowHeightRight发生变化,则会调用ngOnChanges方法。
TS(方式二:@Input结合setter):
private _value = '';
@Input('value')
set value(value: string) {
this._value = value; //在此处可以对输入值进行处理
}
get value(): string{
return this._value;
}
特别说明:子组件向父组件传值,也是通过该种方式完成的。
HTML
<div style="width: 20%"><a (click)="queryNextList()">Next Page</a></div>
TS
import {Component, Input, OnInit, Output, EventEmitter} from '@angular/core';
@Output() private nextPage = new EventEmitter<string>();
queryNextList() {
this.nextPage.emit('1');
}
说明:@Output()需要引入,作用是对外提供方法;nextPage为对外使用的方法名称;
HTML
<app-table-paging (nextPage)="queryTestWebListNext($event)"></app-table-paging>
说明:调用子组件方法,需要使用小括号;调用的方法名称需要在子组件中定义号,且名称保持一致;
TS
queryTestWebListNext(msg: string) {
console.log(msg);
if (this.pageNum < this.pageTotal) {
this.pageNum = this.pageNum + 1;
this.queryTestWebList();
}
}
HTML
<div><p class="show-p"></p></div>
TS
import { Component, OnInit } from '@angular/core'; declare let $: any; @Component({ selector: 'app-mode-two', templateUrl: './mode-two.component.html', styleUrls: ['./mode-two.component.scss'] }) export class ModeTwoComponent implements OnInit { constructor() { } ngOnInit() { } addMsg2P(msg: string) { $('.show-p').html(msg); } }
说明:向p标签中添加msg;addMsg2P为对外的方法;
HTML
<button type="button" class="btn btn-primary" (click)="ShowP()">Show-P</button>
<app-mode-two #modeTwo></app-mode-two>
说明:#modeTwo为调用模块的ID,在TS中定义;点击【Show-P】按钮,会调用TS中的ShowP方法
TS
import {ModeTwoComponent} from '../modal/mode-two/mode-two.component';
@ViewChild('modeTwo')
modeTwo: ModeTwoComponent
ShowP() {
this.modeTwo.addMsg2P('hahaha');
}
说明:需要引入子组件,使用@ViewChild进行定义,定义的名称需要和HTML中[#]后面的保持一致;这个时候,定义出来的模块modeTwo中的方法在父模块中将被直接使用。
如[2.3.1]雷同
HTML
<button type="button" class="btn btn-primary" (click)="modeTwo.addMsg2P('qwerty')">Show-P2</button>
<app-mode-two #modeTwo></app-mode-two>
直接在click中调用即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。