小编Kam*_*ski的帖子

CSS 字体 rem 技巧:62.5% 或 6.25%

我想在 REM 中使用字体大小调整,在互联网上我发现了以下技巧

html { font-size: 62.5%; } 
body { font-size: 1.4rem; } /* =14px */
h1   { font-size: 2.4rem; } /* =24px */
Run Code Online (Sandbox Code Playgroud)

由于设置font-size: 62.5%;覆盖rem <-> px(像素)很容易(只需将像素值除以 10)。

但是我想知道 - 为什么不使用值6.25% - 在这种情况下,我们的技巧将如下所示:

html { font-size: 6.25%; } 
body { font-size: 14rem; } /* =14px */
h1   { font-size: 24rem; } /* =24px */
Run Code Online (Sandbox Code Playgroud)

并且这种方法看起来更直接,对于 62.5% 的值(我们可以将 rem 转换为 px 而不更改数值)-但是我有一个问题-为什么人们“在互联网上”不使用这种方法-可能会导致一些问题(即我不知道)?

html css fonts

8
推荐指数
2
解决办法
9336
查看次数

如何禁用git-lfs?

我在使用LFS的bitbucket上有一个存储库。自使用了一段时间以来,我决定将存储库移回我控制的空间。首先使用LFS的唯一原因是有效地增加了存储库大小限制(因为LFS中的文件位于单独的存储桶中),但是现在我要移动它,因此不再需要这样做。

我需要一种方法来遍历整个git历史记录,删除git LFS所做的工作的所有痕迹(以便所有文件均“正常”提交)。完成此操作后,我打算强制推送到新的存储库。

我已经做了很多搜索,遇到了建议的解决方案,但是由于它们是高级的,所以我不知道如何实现/运行它们。

我如何向git LFS告别?

git git-lfs

7
推荐指数
2
解决办法
6110
查看次数

角度点击去抖动

在我的模板中,我有一个字段和两个按钮:

<div class="btn-plus" (click)="add(1)"> - </div>
<div class="txt"> {{ myValue }} </div>
<div class="btn-minus" (click)="add(-1)"> + </div>
Run Code Online (Sandbox Code Playgroud)

在我的组件 .ts 文件中,我有:

add(num) {
    this.myValue +=num;
    this.update(); // async function which will send PUT request
}
Run Code Online (Sandbox Code Playgroud)

this.update()函数myValue在一个大的 JSON 对象中放入适当的字段并将其发送到服务器。

问题:当用户在短时间内点击加号/减号按钮 10 次时,请求将被发送 10 次。但我只想发送一次请求 - 最后一次点击后 0.5 秒。怎么做

rxjs typescript debounce angular

7
推荐指数
2
解决办法
1万
查看次数

以角度将数据从一个组件传递到另一个组件

我正在开发一个包含搜索功能的应用程序。

现在我在应用程序 1. Navbar 2. SearchGridList 中有 2 个组件

Navbar 组件包含一个文本框,您可以在其中输入搜索查询并按 Enter,该组件将进行 api 调用并获取数据。当数据回来时,我想将此数据填充到 SearchGridList 组件中的数组中。

我很难理解在 Angular 中的组件内传递数据,有人可以看看我的代码并指导我。

导航栏.component.ts

import { Component, OnInit, Input, Output } from '@angular/core';
import {DataService} from '../../services/data.service';
import {SearchResults} from '../class/search.class';
import {SearchGridListComponent} from '../search-grid-list/search-grid-list.component';
import { EventEmitter } from '@angular/core';

@Component({
  selector: 'app-navbar',
  templateUrl: './navbar.component.html',
  styleUrls: ['./navbar.component.css']
})
export class NavbarComponent implements OnInit {

  searchQuery : String;
  //searchResultList : Array<any> = [];

  constructor(private dataService :  DataService) { }

  doSearch () : any
  { …
Run Code Online (Sandbox Code Playgroud)

javascript arrays components typescript angular

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

jQuery / js在具有相同类的div附近包装到单个div中

我具有以下结构,我需要包装div一下.item。在某些地方,有两个项目,在某个地方,有一个项目:

<div class="section">
  <div class="heading"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="heading"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="heading"></div>
  <div class="item"></div>
  <div class="heading"></div>
  <div class="item"></div>
  <div class="item"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

我需要以下格式的输出:

<div class="section">
  <div class="heading"></div>
  <div>
    <div class="item"></div>
    <div class="item"></div>
  </div>
  <div class="heading"></div>
  <div>
    <div class="item"></div>
    <div class="item"></div>
  </div>
  <div class="heading"></div>
  <div>
    <div class="item"></div>
  </div>
  <div class="heading"></div>
  <div>
    <div class="item"></div>
    <div class="item"></div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下代码,但将所有代码包装到单个类中。

var classes = {};
$(".section > div").each(function() {
    classes[$(this).attr("class")] = true;
});
for (singleClass in …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery jquery-selectors

7
推荐指数
1
解决办法
394
查看次数

如何在 Javascript 中使用条件进行映射

我正在遍历一个对象数组:

people = [
  {id:1, name:"Bob", available:false},
  {id:2, name:"Sally", available:true},
  {id:1, name:"Trish", available:false},
]
Run Code Online (Sandbox Code Playgroud)

我希望我的输出是可用的名称:

["Sally"]
Run Code Online (Sandbox Code Playgroud)

我目前知道如何映射和提取字段。如何添加条件?

  const peopleAvailable = people.map(person => person.value);
Run Code Online (Sandbox Code Playgroud)

想做这样的事情:

  const peopleAvailable = people.map(person.available => person.value);
Run Code Online (Sandbox Code Playgroud)

javascript filter

7
推荐指数
1
解决办法
2万
查看次数

JSON.stringify 替换器 - 如何获取完整路径

下面代码中的替换器在控制台上写入当前处理的字段名称

let a = { a1: 1, a2:1 }
let b = { b1: 2, b2: [1,a] }
let c = { c1: 3, c2: b }


let s = JSON.stringify(c, function (field,value) {
  console.log(field); // full path... ???
  return value;
});
Run Code Online (Sandbox Code Playgroud)

但是我想在替换函数中获得字段的完整“路径”(不仅仅是它的名称) - 像这样


c1
c2
c2.b1
c2.b2
c2.b2[0]
c2.b2[1]
c2.b2[1].a1
c2.b2[1].a2
Run Code Online (Sandbox Code Playgroud)

怎么做?

javascript json

7
推荐指数
1
解决办法
3177
查看次数

在 jsfuck 中获取“C”字母的替代方法

目前jsfuck使用以下代码来获取“C”字符

console.log(
    Function("return escape")()(("")["italics"]())[2],
)
   
console.log(  // after expansion
    []["flat"]["constructor"]("return escape")()(([]+[])["italics"]())[!![]+!![]]
)

console.log(  // after final strings expansion we get pure jsfuck code
    [][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]][[]+([]+[][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]])[!![]+!![]+!![]]+(!![]+[][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]])[[]+(+!![])+(+[])]+([]+[][[]])[+!![]]+([]+![])[!![]+!![]+!![]]+([]+!![])[+![]]+([]+!![])[+!![]]+([]+!![])[!![]+!![]]+([]+[][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]])[!![]+!![]+!![]]+([]+!![])[+![]]+(!![]+[][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]])[[]+(+!![])+(+[])]+([]+!![])[+!![]]]([]+([]+!![])[+!![]]+([]+!![])[!![]+!![]+!![]]+([]+!![])[+![]]+([]+!![])[!![]+!![]]+([]+!![])[+!![]]+([]+[][[]])[+!![]]+(+[![]]+[][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]])[+([]+(+!![])+(+!![]))]+([]+!![])[!![]+!![]+!![]]+([]+![])[!![]+!![]+!![]]+([]+[][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]])[!![]+!![]+!![]]+([]+![])[+!![]]+(+([]+(!![]+!![])+(!![]+!![]+!![]+!![]+!![])))[[]+([]+!![])[+![]]+(!![]+[][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]])[[]+(+!![])+(+[])]+([]+[])[[]+([]+[][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]])[!![]+!![]+!![]]+(!![]+[][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]])[[]+(+!![])+(+[])]+([]+[][[]])[+!![]]+([]+![])[!![]+!![]+!![]]+([]+!![])[+![]]+([]+!![])[+!![]]+([]+!![])[!![]+!![]]+([]+[][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]])[!![]+!![]+!![]]+([]+!![])[+![]]+(!![]+[][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]])[[]+(+!![])+(+[])]+([]+!![])[+!![]]][[]+([]+[][[]])[+!![]]+([]+![])[+!![]]+((+[])[[]+([]+[][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]])[!![]+!![]+!![]]+(!![]+[][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]])[[]+(+!![])+(+[])]+([]+[][[]])[+!![]]+([]+![])[!![]+!![]+!![]]+([]+!![])[+![]]+([]+!![])[+!![]]+([]+!![])[!![]+!![]]+([]+[][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]])[!![]+!![]+!![]]+([]+!![])[+![]]+(!![]+[][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]])[[]+(+!![])+(+[])]+([]+!![])[+!![]]]+[])[[]+(+!![])+(+!![])]+([]+!![])[!![]+!![]+!![]]]](+([]+(!![]+!![]+!![])+(+[])))+([]+!![])[!![]+!![]+!![]])()(([]+[])[[]+([]+[][[]])[!![]+!![]+!![]+!![]+!![]]+([]+!![])[+![]]+([]+![])[+!![]]+([]+![])[!![]+!![]]+([]+[][[]])[!![]+!![]+!![]+!![]+!![]]+([]+[][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]])[!![]+!![]+!![]]+([]+![])[!![]+!![]+!![]]]())[!![]+!![]]
)
Run Code Online (Sandbox Code Playgroud)

但是这种方法使用了不推荐使用的函数"".italics (信息在这里)。我开发了一个小工具并试图找到一些基于的替代方案,btoa但我遗憾地发现 node.js 不支持(在线

console.log(
  Function("return btoa")()("t.")[1]
)

console.log( // after expansion
  []["flat"]["constructor"]("return btoa")()("t.")[+!![]]
)

console.log( // after full expansion
  [][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]][[]+([]+[][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]])[!![]+!![]+!![]]+(!![]+[][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]])[[]+(+!![])+(+[])]+([]+[][[]])[+!![]]+([]+![])[!![]+!![]+!![]]+([]+!![])[+![]]+([]+!![])[+!![]]+([]+!![])[!![]+!![]]+([]+[][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]])[!![]+!![]+!![]]+([]+!![])[+![]]+(!![]+[][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]])[[]+(+!![])+(+[])]+([]+!![])[+!![]]]([]+([]+!![])[+!![]]+([]+!![])[!![]+!![]+!![]]+([]+!![])[+![]]+([]+!![])[!![]+!![]]+([]+!![])[+!![]]+([]+[][[]])[+!![]]+(+[![]]+[][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]])[+([]+(+!![])+(+!![]))]+([][[]+([]+!![])[!![]+!![]+!![]]+([]+[][[]])[+!![]]+([]+!![])[+![]]+([]+!![])[+!![]]+([]+[][[]])[!![]+!![]+!![]+!![]+!![]]+([]+!![])[!![]+!![]+!![]]+([]+![])[!![]+!![]+!![]]]()+[])[!![]+!![]]+([]+!![])[+![]]+(!![]+[][[]+([]+![])[+[]]+([]+![])[!![]+!![]]+([]+![])[+!![]]+([]+!![])[+![]]])[[]+(+!![])+(+[])]+([]+![])[+!![]])()([]+([]+!![])[+![]]+(+(+!+[]+[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+[!+[]+!+[]]+[+[]])+[])[+!+[]])[+!![]]
)
Run Code Online (Sandbox Code Playgroud)

有没有办法(在当前版本的 chrome、safari、firefox 和 node.js 上工作)使用 jsfuck 但不使用不推荐使用的方法来获取字符“C”?

javascript jsfuck

7
推荐指数
2
解决办法
635
查看次数

在微服务架构中发送电子邮件

抱歉我的英语 - 如果有些事情不清楚请在评论中问我 - 我会澄清这一点.

我在微服务架构中构建系统.我有一个服务包含用户信息,一个服务用于"优惠",一个服务用于"创意".服务"提供"和"想法"通过Restful API(登录和其他操作)提供"用户"服务.我想知道 - 如何处理电子邮件?每个服务都有单独的前端,并在某些操作后发送电子邮件(例如,当某些第三人打开链接时,某些提供创建此优惠的用户将收到电子邮件,或者当某个用户创建想法时,管理员将收到电子邮件).此外,在每个服务前端,经理可以使用季节统计数据或其他一些信息创建"定期"邮件.每个服务电子邮件的外观不同,内容也不同.

我有很多选择,不知道哪个更好.这是一些主张:

  1. 每个服务都有自己独立的电子邮件系统,并发送各种电子邮件(行动后和定期)独立.
  2. "用户服务"具有发送动作的"引擎"以及定期发送的电子邮件和其他服务.内部任务中有指向任务的服务链接,该链接将生成电子邮件内容(例如定期电子邮件中的女巫统计数据).这个解决方案很复杂......
  3. "用户服务"只有定期发送电子邮件的引擎(任务有生成电子邮件正文的链接......)但是每个微服务独立者发送操作后发送电子邮件
  4. 创建新的微服务仅用于使用适当的API发送电子邮件(定期和"行动后").当然,像"商品"这样的服务也应该在邮寄任务中发送链接(自己) - 这个链接将在定期发送电子邮件时被调用,此链接的响应将生成电子邮件正文....

哪一个会更好?或者可能有更好的选择?

email rest email-integration restful-architecture microservices

6
推荐指数
1
解决办法
3138
查看次数

凭据:“包括”不包括 Cookie 标头

我在客户端上使用credentials: 'include'mode: 'cors'。在服务器上我看到access-control-allow-credentials: trueaccess-control-allow-origin: https://dev.com:9443标题。我没有看到我的cookie标题,我似乎无法找到它不发送的原因。如果我能提供更多详细信息,请告诉我。

获取请求

fetch(url, {
  method: 'get',
  credentials: 'include',
  mode: 'cors',
  headers: {
    'Content-Type': 'application/json'
  }
});

Run Code Online (Sandbox Code Playgroud)

选项请求头

:authority: prod.fakedomain.com
:method: OPTIONS
:path: /Search
:scheme: https
accept: */*
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9,fr;q=0.8,la;q=0.7
access-control-request-headers: content-type
access-control-request-method: GET
cache-control: no-cache
dnt: 1
origin: https://dev.com:9443
pragma: no-cache
referer: https://dev.com:9443/
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
Run Code Online (Sandbox Code Playgroud)

选项响应头

access-control-allow-credentials: true
access-control-allow-headers: content-type …
Run Code Online (Sandbox Code Playgroud)

javascript cookies fetch fetch-api

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