我有一个聊天应用程序,当我点击进入textarea开始键入新消息时,键盘会推送上面的所有内容.这意味着ion-header消失了.我希望这一直保持在屏幕顶部可见.
以下是GIF示例:https://i.imgur.com/a/GcmagJi
该ion-header代码是:
<ion-header>
<ion-navbar>
<ion-buttons ion-fixed end>
<button ion-button icon-only (click)="closeChat()">
<ion-icon name="close-circle"></ion-icon>
</button>
</ion-buttons>
</ion-navbar>
</ion-header>
Run Code Online (Sandbox Code Playgroud)
该ion-footer代码是:
<ion-footer>
<ion-grid>
<ion-row>
<ion-col col-9>
<textarea rows="3" [(ngModel)]="data.message" (keyup.enter)="sendMessage()" placeholder="Type your message ..."></textarea>
</ion-col>
<ion-col col-3>
<button ion-button (click)="sendMessage()">Send</button>
</ion-col>
</ion-row>
</ion-grid>
</ion-footer>
Run Code Online (Sandbox Code Playgroud)
在我的app.module.ts文件中,我使用过:
imports: [
BrowserModule,
LongPressModule,
IonicModule.forRoot(MyApp, {
scrollPadding: false,
scrollAssist: true,
autoFocusAssist: false
}
),
IonicStorageModule.forRoot(),
DragulaModule,
HttpModule
]
Run Code Online (Sandbox Code Playgroud)
在我的chat.ts身上:
constructor(private keyboard: Keyboard) …Run Code Online (Sandbox Code Playgroud) 我试图将我在https://github.com/bevacqua/dragula/issues/289#issuecomment-277143172上找到的代码用于我的Ionic项目.
当我运行代码时,我得到一个错误Cannot find namespace 'NodeJS',错误引用touchTimeout: NodeJS.Timer;
如何调整下面的代码以使NodeJS.Timer线路正常工作?
import { Directive, ElementRef, HostListener } from '@angular/core';
@Directive({ selector: '[delayDragLift]' })
export class DelayDragLiftDirective {
dragDelay: number = 200; // milliseconds
draggable: boolean = false;
touchTimeout: NodeJS.Timer;
@HostListener('touchmove', ['$event'])
// @HostListener('mousemove', ['$event'])
onMove(e: Event) {
if (!this.draggable) {
e.stopPropagation();
clearTimeout(this.touchTimeout);
}
}
@HostListener('touchstart', ['$event'])
// @HostListener('mousedown', ['$event'])
onDown(e: Event) {
this.touchTimeout = setTimeout(() => {
this.draggable = true;
}, this.dragDelay);
}
@HostListener('touchend', ['$event'])
// @HostListener('mouseup', …Run Code Online (Sandbox Code Playgroud) 我显示的秒数从3600减少到0.
<div class="time-box" *ngIf="p.value.playerTimer > 0">{{ p.value.playerTimer }}</div>
Run Code Online (Sandbox Code Playgroud)
我想将秒数格式化为分钟:秒
我希望能够使用DatePipe - https://angular.io/api/common/DatePipe
<div class="time-box" *ngIf="p.value.playerTimer > 0">{{ p.value.playerTimer | date:'mmss' }}</div>
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为它预计p.value.playerTimer是一个日期对象或自纪元以来的秒数.
还有另一种方法来实现这一目标吗?
我正在尝试改进包含敏感数据的MySQL数据库的安全性.我正在努力掌握一些术语.如果我理解了这种情况,有人可以告诉我:
静态加密 - 似乎我可以在表级启用它.表中的所有数据都使用密钥加密.如果某人掌握了备份文件或获得了对服务器的物理访问权限,那么数据将受到保护.当然,这假定密钥存储在别处.
AES_ENCRYPT - 在我的表中插入/更新数据时我可以使用AES_ENCRYPT('data', 'password').通过SELECT查询数据我使用AES_DECRYPT
假设我只是在休息时使用加密,那么我需要在PHP代码中做任何不同的事情来查询数据吗?我的PHP代码是否需要通过我的PDO请求将密钥发送到数据库?或者我可以使用我的常规代码查询数据库并自动处理解密?
或者我误解了静止的加密方式,我需要使用AES_ENCRYPT替代/
我有这个问题:我想在for循环中进行多次获取调用.调用次数取决于用户输入(在我的示例中,我有三个).如何让它循环遍历所有获取请求,然后console.log关闭号码?
function getPosts(){
let url = ["https://www.freecodecamp.org", "https://www.test.de/, http://www.test2.com"];
let array = new Array;
for (let i = 0; i < url.length; i++) {
console.log(url[i]);
fetch(url[i])
.then(res => {return res.text(); })
.then(res => {
let reg = /\<meta name="description" content\=\"(.+?)\"/;
res = res.match(reg);
array.push(res);
console.log(res);
}
)
.catch(status, err => {return console.log(status, err);})
}
console.log (array.length);
}
Run Code Online (Sandbox Code Playgroud)
它控制台.logs 0而不是3,因为它不等待所有的承诺得到解决.我怎样才能使它成为console.log 3?如果您知道解决方案,请帮帮我.
我有一个我想要显示的工作列表<ion-row>.每行最多可包含两个作业.每个作业都包含在<ion-col>标签中.
<ion-row>
<ion-col width-50 class="job-item">Job A</ion-col>
<ion-col width-50 class="job-item">Job B</ion-col>
</ion-row>
Run Code Online (Sandbox Code Playgroud)
我需要能够遍历这些工作:
<ion-row>
<ion-col *ngFor="let job of jobs" width-50 class="job-item">{{ job.name }}</ion-col>
</ion-row>
Run Code Online (Sandbox Code Playgroud)
但问题是所有工作都显示在同一个<ion-row>标签内.
相反,我需要像这样的伪代码:
<ion-row>
<ion-col>1</ion-col>
<ion-col>2</ion-col>
</ion-row>
<ion-row>
<ion-col>3</ion-col>
<ion-col>4</ion-col>
</ion-row>
<ion-row>
<ion-col>5</ion-col>
<ion-col>6</ion-col>
</ion-row>
<ion-row>
<ion-col>7</ion-col>
</ion-row>
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?想必使用奇数/偶数?
我正在向第三方进行 API 调用以接收活动的返票。可以从 API 发回的票证的唯一格式是:
text/vnd.citizen-clp- 与西铁城热敏打印机配合使用
text/vnd.eltron-epl- 旨在与 Electron 打印机(或支持 EPL 仿真的某些打印机型号)一起使用
我的挑战是我网站上的用户需要获得门票,以便他们可以打印门票。这些用户不会拥有 Citizen 或 Electron 打印机。我需要将CPL或转换EPL为PDF格式,以便我的客户可以打印他们的门票。
过去其他供应商向我发送了 ZPL 格式的票据,我正在使用http://labelary.com/中的 API进行转换ZPL-PDF这非常有效。不幸的是 Labelary 只支持ZPLand 不支持CPLor EPL。
我的后端代码是用 PHP 编写的。
那么,有什么工具可以安装到我的服务器上来将CPL/转换EPL为 吗PDF?或者是否有任何在线工具(免费或商业)可以让我发送我的CPL/EPL并接收回来PDF?
在我的package.json文件中,我有:
"scripts": {
"start": "concurrently \"ng serve --host something.mydomain.com --port 4200 --live-reload false --env=prod\" \"gulp\""
},
Run Code Online (Sandbox Code Playgroud)
当我运行时npm start,几秒钟后,我可以在浏览器中访问我的项目,网址为http://something.mydomain.com:4200
我希望直接访问https://something.mydomain.com(即不带端口号)来访问同一系统
我已经将package.json修改为:
"scripts": {
"start": "concurrently \"ng serve --host something.mydomain.com --port 80 --live-reload false --env=prod\" \"gulp\""
},
Run Code Online (Sandbox Code Playgroud)
但是当我跑步时package.json我得到:
端口80已在使用中。使用'--port'指定其他端口。
如果我运行,lsof -i :80则什么也不会发生,因此我确定未占用端口80。我怀疑问题在于端口80是受保护的端口,并且在我登录时ec2-user没有正确的权限吗?
如何通过端口80运行我的项目?
我有一个使用flot的折线图.我希望工具提示显示x轴和y轴值.
我在尝试:
content: "Orders <b>%y</b> for <span>%x</span>",
Run Code Online (Sandbox Code Playgroud)
但是第一点显示"订单100为0",第二点显示"订单100为1",依此类推.
如果我使用:
content: "Orders <b>%y</b> for <span>"+chartData.axis[0][1]+"</span>",
Run Code Online (Sandbox Code Playgroud)
然后,这会正确显示第一个点的x轴值.
但这不起作用:
content: "Orders <b>%y</b> for <span>"+chartData.axis[%x][1]+"</span>",
Run Code Online (Sandbox Code Playgroud)
它给了我:
Uncaught SyntaxError: Unexpected token %
Run Code Online (Sandbox Code Playgroud)
如何在chartData.axis中引用%x的值?
所以我运行了离子模拟android,这就是我在控制台上看到的内容
Booting up emulator (this may take a while)..............................................................................................................................................................
Run Code Online (Sandbox Code Playgroud)
它仍在继续显示点
我运行它来检查HAXM是否已加载并且看起来很好
$ kextstat | grep intel
161 0 0xffffff7f839aa000 0x14000 0x14000 com.intel.kext.intelhaxm (6.0.1) <7 5 4 3 1>
Run Code Online (Sandbox Code Playgroud)
我创建的三星avd出现了,但它只是空白屏幕
我究竟做错了什么?我使用的项目是https://github.com/driftyco/ionic-starter-sidemenu
有任何想法吗?
angular ×4
amazon-ec2 ×1
android ×1
angular-cli ×1
css ×1
encryption ×1
epl ×1
fetch ×1
flot ×1
flot.tooltip ×1
ionic2 ×1
javascript ×1
jquery ×1
mysql ×1
pdf ×1
printing ×1