小编Chr*_*ris的帖子

当键盘出现在Ionic应用程序中时,将离子标题固定到页面顶部

我有一个聊天应用程序,当我点击进入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)

css ionic-framework

20
推荐指数
1
解决办法
1334
查看次数

在Ionic 2中使用NodeJS.Timer时找不到命名空间NodeJS

我试图将我在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)

ionic-framework ionic2 angular

18
推荐指数
2
解决办法
7260
查看次数

格式化的秒数为mm:ss在Angular 2中

我显示的秒数从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是一个日期对象或自纪元以来的秒数.

还有另一种方法来实现这一目标吗?

angular2-template angular

12
推荐指数
4
解决办法
9395
查看次数

静态加密和/或AES_ENCRYPT

我正在尝试改进包含敏感数据的MySQL数据库的安全性.我正在努力掌握一些术语.如果我理解了这种情况,有人可以告诉我:

静态加密 - 似乎我可以在表级启用它.表中的所有数据都使用密钥加密.如果某人掌握了备份文件或获得了对服务器的物理访问权限,那么数据将受到保护.当然,这假定密钥存储在别处.

AES_ENCRYPT - 在我的表中插入/更新数据时我可以使用AES_ENCRYPT('data', 'password').通过SELECT查询数据我使用AES_DECRYPT

  1. 假设我只是在休息时使用加密,那么我需要在PHP代码中做任何不同的事情来查询数据吗?我的PHP代码是否需要通过我的PDO请求将密钥发送到数据库?或者我可以使用我的常规代码查询数据库并自动处理解密?

  2. 或者我误解了静止的加密方式,我需要使用AES_ENCRYPT替代/

mysql encryption

9
推荐指数
1
解决办法
5459
查看次数

如何在for循环中使用fetch,等待结果然后console.log它

我有这个问题:我想在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?如果您知道解决方案,请帮帮我.

javascript fetch

6
推荐指数
3
解决办法
2971
查看次数

使用*ngFor一次循环列表两

我有一个我想要显示的工作列表<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)

我怎样才能做到这一点?想必使用奇数/偶数?

angular

5
推荐指数
1
解决办法
2169
查看次数

将 CPL/EPL 转换为 PDF

我正在向第三方进行 API 调用以接收活动的返票。可以从 API 发回的票证的唯一格式是:

text/vnd.citizen-clp- 与西铁城热敏打印机配合使用

text/vnd.eltron-epl- 旨在与 Electron 打印机(或支持 EPL 仿真的某些打印机型号)一起使用

我的挑战是我网站上的用户需要获得门票,以便他们可以打印门票。这些用户不会拥有 Citizen 或 Electron 打印机。我需要将CPL或转换EPLPDF格式,以便我的客户可以打印他们的门票。

过去其他供应商向我发送了 ZPL 格式的票据,我正在使用http://labelary.com/中的 API进行转换ZPL-PDF这非常有效。不幸的是 Labelary 只支持ZPLand 不支持CPLor EPL

我的后端代码是用 PHP 编写的。

那么,有什么工具可以安装到我的服务器上来将CPL/转换EPL为 吗PDF?或者是否有任何在线工具(免费或商业)可以让我发送我的CPL/EPL并接收回来PDF

printing pdf epl

5
推荐指数
0
解决办法
3869
查看次数

如何在端口80上运行ng服务

在我的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运行我的项目?

amazon-ec2 angular-cli angular

5
推荐指数
2
解决办法
5312
查看次数

根据x轴值设置flot中工具提示的标签

我有一个使用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的值?

jquery flot flot.tooltip

4
推荐指数
1
解决办法
8213
查看次数

离子模拟android启动时仍然显示30分钟后的点

所以我运行了离子模拟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

有任何想法吗?

android ionic-framework

4
推荐指数
1
解决办法
2452
查看次数