小编Rez*_*eza的帖子

我应该如何在角度自定义元素(Web 组件)中引用资产

我创建了一个 Web 组件,并从我的资产文件夹中引用了图像

如下

 <img src="./assets/bot.png" alt="{{botTitle}}" />
Run Code Online (Sandbox Code Playgroud)

在本地一切都很好,我将自定义元素发布到了 firebase 主机,并且 javascript、css 和资产文件夹已经存在于我的主机上。

然后我尝试在另一个 html peage 中使用我的 web 组件,如下所示

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <title>TMIBot</title>
    <base href="/">

    <meta name="viewport" content="height=device-height, width=device-width, initial-scale=1.0, user-scalable=no">

    <title>Test Angular Elements</title>
    <link rel="stylesheet" href="https://myproject.firebaseapp.com/dist/dlx-styles-1.0.css">

</head>

<body>
    <dlx-chat></dlx-chat>
    <script type="text/javascript" src="https://myproject.firebaseapp.com/dist/dlx-chatbot-1.0.js"></script>
</body>

</html>
Run Code Online (Sandbox Code Playgroud)

并通过本地 http 服务器(http-server)提供服务

问题是正在加载的图像./assets/bot.png在托管网站中不存在,而它们存在于我在 firebase 中发布的网站上。

我知道我可以通过完整的 url 来引用它们,但我也认为有一个明显的解决方案,但我错过了。

我感谢帮助

javascript web-component custom-element angular

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

使用onsen ui时,导航栏文本不在设备的中心

我从中下载了默认的主 - 详细信息模板onsen ui,然后开发了基于它的cordova移动应用程序.导航栏中的标题标题以pc浏览器和chrome纹波为中心,但不在设备上.在设备上它会粘在左边.我已添加此样式以查看正在发生的事情.

    .navigation-bar__center
    {
        text-align:center;
        border:solid;
        border-width:1px;
    }
    .navigation-bar
    {
        border:solid;
        border-color:#f00;
        border-width:1px;
    }
Run Code Online (Sandbox Code Playgroud)

似乎标题的对应div没有拉伸.

这是在PC浏览器上

在此输入图像描述

这是在移动设备上(三星android 4.2)

在此输入图像描述

PS.所有页面上都存在问题.

html css html5 onsen-ui

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

如何避免添加前缀"unsafe"链接Angular-2?

我使用的开发移动应用程序angular2ionic 2,我有3 buttonscall,sms并且email如下

          <a ion-button href="tel:{{contact.cellphone}}" color="primary">
            <ion-icon name="call"></ion-icon>
            Call
          </a>
          <a ion-button href="sms:{{contact.cellphone}}" color="secondary">
            <ion-icon name="text"></ion-icon>
            SMS
          </a>
          <a ion-button href="mailto:{{contact.email}}" color="dark">
            <ion-icon name="mail"></ion-icon>
            Email
          </a>
Run Code Online (Sandbox Code Playgroud)

Call并且email工作正常,但不是sms,似乎角度unsafe:在我的表达前面添加,它将变得像下面

<a color="secondary" ion-button="" ng-reflect-color="secondary" class="button button-md button-default button-default-md button-md-secondary" ng-reflect-href="unsafe:sms:+16475374201" href="unsafe:sms:+16475374201"><span class="button-inner">
Run Code Online (Sandbox Code Playgroud)

即使我试过这个

      <a ion-button [attr.href]="'sms:'+contact.cellphone" color="secondary">
        <ion-icon name="text"></ion-icon>
        SMS
      </a>
Run Code Online (Sandbox Code Playgroud)

还是一样的问题,

当我不使用角度绑定时,它工作正常,例如像这样

          <a ion-button href="sms:+1647654654" color="secondary">
            <ion-icon name="text"></ion-icon>
            SMS
          </a>
Run Code Online (Sandbox Code Playgroud)

虽然它与角度有关,但我也检查了我的config.xml并且 …

angularjs ionic2 angular

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

通过es6在数组中查找不同的对象

我有一个像下面的数组

const data = [
    {
        name:'AAAA',
        group: 'A',
        age:10
    },
    {
        name:'ABCD',
        group: 'A',
        age:10
    },
    {
        name:'DJSHDJH',
        group: 'B',
        age:15
    },
    {
        name:'FJHF',
        group: 'B',
        age:20
    }
]
Run Code Online (Sandbox Code Playgroud)

我想找到不同的数据group,并age通过es6

预期结果

[
    {
        group: 'A',
        age: 10
    },
    {
        group: 'B',
        age: 15
    },
    {
        group: 'B',
        age: 20
    }
]
Run Code Online (Sandbox Code Playgroud)

我尝试过[... new Set(data.map(x => {x.group, g.age}))]但没有机会

我知道如何循环数据并找到唯一值,但我想使用es6函数

javascript arrays ecmascript-6

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

如何在Angular中嵌套routerLink

我有一个角度为 7 的项目

我有带<a>标签的路由器链接,我有嵌套<a>标签,两者都有routerLink属性,

我面临的问题是,内部<a>路线不起作用

<a [routerLink]="[ './comp1']">
    Comp1
    <a [routerLink]="['./comp2']">
        Navigate to comp2 (Nested)
    </a>
</a>
Run Code Online (Sandbox Code Playgroud)

如果我将它分开,这将起作用

<div>
    <a [routerLink]="['./comp2']">
        Navigate to comp2 (Not Nested)
    </a>
</div>
Run Code Online (Sandbox Code Playgroud)

我也尝试了下面的代码,但仍然相同

<a [routerLink]="[ './comp1']">
    Comp1
    <a [routerLink]="['./comp2']" (click)="$event.preventDefault()>
        Navigate to comp2 (Nested)
    </a>
</a>
Run Code Online (Sandbox Code Playgroud)

a标签更改为跨度也不能解决问题

<span [routerLink]="[ './comp1']" >
    Comp1
    <span [routerLink]="['./comp2']" (click)="$event.preventDefault()">
        Navigate to comp2 (Nested)
    </span>
</span>
Run Code Online (Sandbox Code Playgroud)

这是它的https://stackblitz.com/edit/angular-nested-router

javascript angular2-routing angular angular7

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

在nodejs中的Firebase函数中使用谷歌云Vision Api的PermissionError

我有一个 firebase 函数,并且尝试在我的 firebase 函数中使用 Vision API,但是在本地服务时出现此错误

PERMISSION_DENIED:项目 563584335869 之前未使用过 Cloud Vision API 或已禁用。通过访问https://console.developers.google.com/apis/api/vision.googleapis.com/overview?project=563584335869启用它,然后重试。如果您最近启用了此 API

首先,我不知道 563584335869来自哪里,因为当我单击链接时,它不是一个有效的项目 在此输入图像描述

其次,我选择该项目并在其上启用 Vision API,仍然收到相同的错误

代码非常简单,无论如何我将其添加到这里

    async analyze(imageStorageLocation: string): Promise<any> {
        const vision = require('@google-cloud/vision');

        const client = new vision.ImageAnnotatorClient();

        const [result] = await client.textDetection(imageStorageLocation);
        const detections = result.textAnnotations;
        console.log('Text:');
        detections.forEach((text: string) => console.log(text));
    }
Run Code Online (Sandbox Code Playgroud)

这就是我初始化 firebase admin 的方式 admin.initializeApp(functions.config().firebase);

这是package.json

  "dependencies": {
    "@google-cloud/vision": "^1.7.1",
    "@nestjs/common": "^6.0.0",
    "@nestjs/core": "^6.0.0",
    "@nestjs/platform-express": "^6.9.0",
    "express": "^4.17.1",
    "firebase-admin": "^8.7.0",
    "firebase-functions": "^3.3.0",
    "moment-timezone": "^0.5.27",
    "reflect-metadata": "^0.1.12", …
Run Code Online (Sandbox Code Playgroud)

firebase google-cloud-platform google-vision google-cloud-functions

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

如何修复截断的字符串 json 以便能够再次解析它

我有一个 json 字符串在 google 日志中被截断(由于某些原因无法修复)

json 字符串大约有 255000 个字符,为简单起见,考虑原始 json 如下所示

 { "a": "1", 
   "b" : [{
      "b1": "<span>text b1</span>"
   },
   {
      "b2": "<span>text b2</span>"
   }],
   "c": "3"
 }
Run Code Online (Sandbox Code Playgroud)

和截断的字符串如下

 { "a": "1", 
   "b" : [{
      "b1": "<spa... 34 characters truncated.
Run Code Online (Sandbox Code Playgroud)

当然,如果我尝试 JSON.parse 上面的字符串,我会收到错误

现在我想的解决方案是使其成为有效的 json 并丢失一些数据,因此我期望的输出是

 { "a": "1", 
   "b" : [{
      "b1": "<spa"
    }]
 }
Run Code Online (Sandbox Code Playgroud)

上面所做的是

  • ... 34 characters truncated.从字符串末尾删除
  • 通过添加来关闭字符串"(在本例中是需要的,但也可能不需要)
  • 添加足够的内容]}使其再次成为有效对象

还有其他情况需要涵盖

例如

 { "a": "1", 
   "b" : [{
      "b1": …
Run Code Online (Sandbox Code Playgroud)

javascript json

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

asp.net 5 mvc 6型号问题

我试图从新闻部分列出一些数据.我有两张桌子.新闻和新闻类别

这是我的模型类

public class News
{
    public int NewsId { get; set; }
    public string Name { get; set; }
    public int NewsCategoryId { get; set; }
    public virtual NewsCategory NewsCategory { get; set; }
}
public class NewsCategory
{
    public int NewsCategoryId { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }

    public virtual List<News> News { get; set; }
}

public class NewsDbContext : DbContext
{

    protected override void OnConfiguring(DbContextOptions …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-core-mvc

3
推荐指数
1
解决办法
121
查看次数

如何在Angular中定义枚举类型以不违反tslint typedef规则

为了能够在模板中使用枚举,我们在ts文件中写下面的代码.

在workflowProgress.ts中

export enum WorkflowProgress
{
    cancelled = 0,
    inProgress,
    done
}
Run Code Online (Sandbox Code Playgroud)

在component.ts中

export class Component {
   WorkflowProgress = WorkflowProgress;
   x : WorkflowProgress = WorkflowProgress.done;
}
Run Code Online (Sandbox Code Playgroud)

在template.html中

<div *ngIf="x === WorkflowProgress.done">
Run Code Online (Sandbox Code Playgroud)

我们已经启用了typedef规则的tslint.但是tslint正在唠叨这条线WorkflowProgress = WorkflowProgress;

[tslint]期望成员变量声明:'WorkflowProgress'有一个typedef(typedef)

我可以通过添加禁用规则,// tslint:disable-next-line:typedef但我想知道是否有更好的方法来做到这一点?

lint typescript tslint angular

3
推荐指数
1
解决办法
258
查看次数

如何检查是否在嵌套的 jest 模拟函数中调用了一个方法

我有一个像下面这样的模拟服务

  const firebaseService = jest.fn(() => ({
    initializeApp: jest.fn(() => { /*do nothing*/}),
  }))
Run Code Online (Sandbox Code Playgroud)

在我的测试中,我想要expectifinitializeApp已经被调用。我该如何检查?

it('should be called', () => {
   expect(???).toHaveBeenCalledTimes(1);
});
Run Code Online (Sandbox Code Playgroud)

更新:真实场景

  const collection = jest.fn(() => {
    return {
      doc: jest.fn(() => {
        return {
          collection: collection,
          update: jest.fn(() => Promise.resolve(true)),
          onSnapshot: jest.fn(() => Promise.resolve(true)),
          get: jest.fn(() => Promise.resolve(true))
        }
      }),
      where: jest.fn(() => {
        return {
          get: jest.fn(() => Promise.resolve(true)),
          onSnapshot: jest.fn(() => Promise.resolve(true)),
          limit: jest.fn(() => {
            return {
              onSnapshot: jest.fn(() …
Run Code Online (Sandbox Code Playgroud)

javascript jestjs ts-jest

3
推荐指数
1
解决办法
9635
查看次数