我找到了这个解决方案。它有效吗?
import {Component} from '@angular/core';
import {Platform} from 'ionic-angular';
@Component({...})
export MyApp {
constructor(platform: Platform) {
platform.ready().then((readySource) => {
console.log('Width: ' + platform.width());
console.log('Height: ' + platform.height());
});
}
}
该溶液用于离子2。 我也可以用于角度2?
请建议我正确的方法。
答案 0 :(得分:68)
对于那些想要获得设备高度和宽度的人,即使显示调整大小(动态&实时):
在该组件中执行:var arr = ["john doe first", "robert way", "jason doe", "alex"];
var finalArray = []
for(var i = 0; i < arr.length; i ++) {
arr[i].split(' ').forEach(function(item) {finalArray.push(item);});
}
console.log(finalArray)
在组件的类体中写:
import { HostListener } from "@angular/core";
在组件的@HostListener('window:resize', ['$event'])
onResize(event?) {
this.screenHeight = window.innerHeight;
this.screenWidth = window.innerWidth;
}
中调用constructor
方法,以初始化变量。另外,不要忘记先声明它们。
onResize
完整代码:
constructor() {
this.onResize();
}
答案 1 :(得分:36)
我找到了解决方案。答案很简单。在构造函数中编写以下代码。
import { Component, OnInit, OnDestroy, Input } from "@angular/core";
// Import this, and write at the top of your .ts file
import { HostListener } from "@angular/core";
@Component({
selector: "app-login",
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit, OnDestroy {
// Declare height and width variables
scrHeight:any;
scrWidth:any;
@HostListener('window:resize', ['$event'])
getScreenSize(event?) {
this.scrHeight = window.innerHeight;
this.scrWidth = window.innerWidth;
console.log(this.scrHeight, this.scrWidth);
}
// Constructor
constructor() {
this.getScreenSize();
}
}
======工作代码(另一个)======
export class Dashboard {
mobHeight: any;
mobWidth: any;
constructor(private router:Router, private http: Http){
this.mobHeight = (window.screen.height) + "px";
this.mobWidth = (window.screen.width) + "px";
console.log(this.mobHeight);
console.log(this.mobWidth)
}
}
答案 2 :(得分:27)
export class Dashboard {
innerHeight: any;
innerWidth: any;
constructor(private router: Router, private http: Http) {
this.innerHeight = (window.screen.height) + "px";
this.innerWidth = (window.screen.width) + "px";
}
}
答案 3 :(得分:7)
请记住,如果您想测试此组件,则需要注入窗口。使用@Inject()函数注入窗口对象,方法是使用字符串标记命名,如duplicate
中详述答案 4 :(得分:6)
在这种情况下,您可以使用typescript getter方法。像这样
public get height() {
return window.innerHeight;
}
public get width() {
return window.innerWidth;
}
并在这样的模板中使用它:
<section [ngClass]="{ 'desktop-view': width >= 768, 'mobile-view': width < 768
}"></section>
打印值
console.log(this.height, this.width);
您将不需要任何事件处理程序来检查窗口的大小,此方法将每次自动检查大小。