我需要将offesetTop和offsetLeft设置为我的viewchild元素,以将其定位在另一个元素的悬停上.这是一个工具提示,所以这就是我尝试过的:
<div (mouseover)="showPopup($event, price)"></div>
<div #tooltip>Some text</div>
Run Code Online (Sandbox Code Playgroud)
这是我的div,在TS里面我有:
@ViewChild('tooltip') tooltip: ElementRef;
showPopup(event, price) {
price.show = true;
this.tooltip.nativeElement.offsetTop = event.target.offsetTop;
this.tooltip.nativeElement.offsetLeft = event.target.offsetLeft;
}
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
无法分配给对象'[object HTMLDivElement]'的只读属性'offsetTop'.有什么建议?
我有一个呈现一些html的函数,我不知道如何在这里调用setInterval函数,每60秒调用一次render func。
const Home = {
render: async () => {
const cryptos = await getAllCryptos();
const view = `
<section class="section">
<table>
${cryptos.data.map(crypto =>
`<tr>
<td class="name"><a href="/src/#/crypto/${crypto.id}">${crypto.name}</a> </td>
<td>${crypto.symbol}</td>
<td>${crypto.quote.USD.price}</td>
<td>${crypto.quote.USD.percent_change_24h}</td>
</tr>`
)}
</table>
</section>
`;
return view
}
};
export default Home;
Run Code Online (Sandbox Code Playgroud)
我真的不能把render函数放进去setInterval,所以我想知道最好的方法是什么?
我需要创建正则表达式,无论顺序如何,它都会在字符串中查找 3 个相同的字母。
例子:
'aa2ff333' -> false
'aa2a' -> true
'aaa2' -> true
Run Code Online (Sandbox Code Playgroud)
我试过这个,但它检查连续的字母:
(.)\1\1
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?
我需要检查窗口大小,如果它是<1400 px(笔记本电脑),最好的方法是什么?
如果它小于1400,我想将变量设置为true,例如.
我正在尝试获取日期的月份,但它一直向我显示:"2018-81-26 07:00"..这是我用来设置所需日期的函数:
selectStartTime(time) {
this.selectedTime = '' + time.time + ' ' + time.period;
var date = new Date(this.start_at); // this shows good date:
//Wed Sep 26 2018 00:00:00 GMT+0200 (Central European Summer Time)
var period = time.period;
var hours = '';
// error occurs here:
var year = date.getFullYear() + '-' + date.getMonth()+1 + '-' + date.getDate();
// year: 2018-81-26 07:00
if (period === 'PM') {
hours = '' + (time.value + 12) + ':00';
this.campaignModel.starts_at = …Run Code Online (Sandbox Code Playgroud) 我正在尝试检查我上传的视频是否超过 30 秒,但无法获得我需要的示例。这是我到目前为止检查大小和其他一些事情的代码:
readVideoUrl(event: any) {
this.videoFile = [];
const eventObj: MSInputMethodContext = <MSInputMethodContext> event;
const target: HTMLInputElement = <HTMLInputElement> eventObj.target;
const files: FileList = target.files;
if (files) {
this.videoFile.push(files[0]);
this.videoModel.name = files[0].name;
}
if (event.target.files && event.target.files[0]) {
let reader = new FileReader();
reader.onload = (event: ProgressEvent) => {
this.videoUrl = (<FileReader>event.target).result;
};
reader.readAsDataURL(event.target.files[0]);
}
const FileSize = files[0].size / 1024 / 1024; // in MB
if (FileSize > 50) {
this.videoSizeError = true;
} else {
this.videoSizeError = …Run Code Online (Sandbox Code Playgroud) 我需要做这样的事情:假设我有一个数组:
[3, 4, 1, 2]
Run Code Online (Sandbox Code Playgroud)
我需要交换 3 和 4,以及 1 和 2,所以我的数组看起来像[4, 3, 2, 1]. 现在,我可以只做sort(). 在这里我需要计算我需要多少次迭代,将初始数组更改为最终输出。例子:
// I can sort one pair per iteration
let array = [3, 4, 1, 2, 5]
let counter = 0;
//swap 3 and 4
counter++;
// swap 1 and 2
counter++;
// 5 goes to first place
counter++
// now counter = 3 <-- what I need
Run Code Online (Sandbox Code Playgroud)
编辑:这是我尝试过的。并不总是有效...它来自这个问题:Bubble sort algorithm JavaScript
let counter = 0;
let swapped;
do …Run Code Online (Sandbox Code Playgroud)