小编Ben*_*cot的帖子

是否无法将Google地图嵌入HTML电子邮件中?

我做了大量的研究,并找到了几个"解决方案",例如静态地图API,只是发送一个链接到Gmap.但是真的没有办法真正向某人发送谷歌地图吗?

html iframe google-maps html-email

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

如何使用PHP查找下个月的第一天以及到此日期的剩余天数

我怎样才能找到下个月的第一天以及从现在开始直到今天的剩余天数?

谢谢

php

26
推荐指数
4
解决办法
3万
查看次数

takeUntilDestroyed() 只能在注入上下文中使用

我正在尝试用 Angular 的新takeUntilDestroyed().

\n

但我一开始就犯了错误。

\n
\n

NG0203:takeUntilDestroyed() 只能在注入上下文中使用,例如构造函数、工厂函数、字段初始值设定项或与runInInjectionContext. 欲了解更多信息,请访问https://angular.io/errors/NG0203

\n
\n

博客文章说:

\n
\n

默认情况下,该运算符将注入当前的清理上下文。例如,在组件中使用,它将使用组件\xe2\x80\x99s的生命周期。

\n
\n

文档确认注入上下文是可选的这篇深入的文章展示了它在OnInit没有上下文的情况下的用法。\n这就是我如何使用它。

\n
  public ngOnInit(): void {\n    this.route.firstChild.paramMap.pipe(\n      takeUntilDestroyed()\n    ).subscribe((res: ParamMap) => {\n      ...\n    });\n
Run Code Online (Sandbox Code Playgroud)\n

如何解决这个问题?

\n

rxjs angular

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

如何使用data-属性通过jQuery传递值?

我想更多地了解如何在HTML中使用data-*属性及其在jQuery中的使用.我只是尝试使用.data()和/或.attr()检索data-attribute-name ="a value" ,它们都使用以下方法记录为"undefined".如何使用data-属性通过jQuery传递值?

HTML

<li class="als-item">
    <a data-loc-subject="test value">
        <img src="clock.png"/>
    </a>Beach
</li>
Run Code Online (Sandbox Code Playgroud)

JS

$( ".als-item" ).click(function(e) {
e.preventDefault();

var data = $('.als-item').data('data-loc-subject');
var attrmethod = $('.als-item').attr('data-loc-subject');
    console.log(data);
    console.log(attrmethod);
});
Run Code Online (Sandbox Code Playgroud)

的jsfiddle

jquery

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

在dev工具中设置输入占位符CSS的样式

我知道如何使用每个浏览器指定的伪类在浏览器中设置占位符文本/背景/字体大小等CSS的样式.但是我无法使用开发工具在浏览器中设置它们的样式,并且没有找到答案是否可能.

我喜欢使用占位符样式而不需要试错工作流程.

css html5 placeholder textfield css3

12
推荐指数
1
解决办法
1975
查看次数

Angular的FormArray什么时候是传统数组,什么时候是FormArray对象?

我已经使用ControlValueAccessor构建了一个自定义输入组件,并且可以很好地将标签添加为选择。(Stackblitz

我的问题是:

  1. 当我在表单(城市和州控制)中实现组件时
  2. 通过选择一些选项将值添加到两个控件
  3. 提交表格
  4. 有时控制值是选定标签的数组(如预期)
  5. 其他时候它是一个实际的FormArray对象

这是提交角度形式后的两个相同组件值的屏幕截图。一个是对象数组(预期),另一个是实际的FormArray对象,其中.value属性包含对象数组!

在此处输入图片说明

如果您不想访问StackBlitz,这是一些工作原理代码。

自定义控件是这样实现的。

this.form = this.fb.group({
  tags: this.fb.array([])
});
Run Code Online (Sandbox Code Playgroud)

当用户选择一个下拉项目或点击时,将按以下方式保存对象:

get tagsArray(): FormArray { return this.form.get('tags') as FormArray; }
...
this.tagsArray.push(new FormControl(value));
this.onChange(this.tagsArray); // update controller value
Run Code Online (Sandbox Code Playgroud)

您可以像这样在我的StackBlitz中的formGroup中实现该组件(也在我的StackBlitz中):

表格初始化

public form: FormGroup = this.fb.group({
    states: [],
    cities: []
});
Run Code Online (Sandbox Code Playgroud)

模板

<input-tags formControlName="cities" label="Cities" [typeAhead]="cities" [displayKeys]="['name']" filterKeys="['name']"></input-tags>
<input-tags formControlName="states" label="States" [typeAhead]="states" [displayKeys]="['name']" filterKeys="['name']"></input-tags>
Run Code Online (Sandbox Code Playgroud)

但问题是:

Angular的FormArray什么时候是传统数组,什么时候像Object一样的FormArray Array?

javascript forms angular formarray

12
推荐指数
1
解决办法
246
查看次数

延迟加载 Angular 13+ 模块,无需使用已弃用的编译器

我在加载和实例化 Angular 模块方面进行了大量工作。(不带路由器)

但现在,在 Angular 13 中,我发现实例化 NgModule 的常用编译器工具已被弃用:

在此输入图像描述

这是我加载模块的常用代码

const moduleFactory = await this.compiler.compileModuleAsync(module);
const moduleRef = moduleFactory.create(this.injector);
const componentFactory = moduleRef.instance.resolveComponent(selector);
Run Code Online (Sandbox Code Playgroud)

更深入地了解 ViewContainerRef 现在包含工厂的 V13 更改使动态组件变得更容易了 1 步。然而,关于ViewContainerRef.createComponent()文档指出:

已弃用的 Angular 不再需要组件工厂来动态创建组件。使用不同的 createComponent 方法签名,允许直接传递 Component 类。

那么 Angular 13+ 中这些任务的新方向是什么?

lazy-loading lazy-initialization angular

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

当视口小于特定大小时,如何告诉srcset属性加载NO图像

我无法理解如何防止srcset在屏幕上加载任何图像< 768px.

我已经尝试了下面的代码,但尺寸属性似乎没有你想到的.以下加载1024.jpg所有屏幕尺寸:

<img 
  src="default.jpg"
  srcset="img/1024.jpg 1024w" 
  sizes="(min-width: 768px) 768px, 100vw"
/>
Run Code Online (Sandbox Code Playgroud)

或者是图片元素,如果它会尊重空的srcset,但它只是"暗示"浏览器应该加载哪个图像.

html5 image src srcset

11
推荐指数
2
解决办法
8548
查看次数

Angular 双向数据绑定和观察父组件的变化

使用双向数据绑定时,似乎没有办法观察父组件的变化。

我有一个用于收集标签列表的自定义输入组件。双向数据绑定在此组件与其父组件之间设置和工作。

// the parent component is just a form
// here is how I'm adding the child component
<input-tags formControlName="skillField" [(tags)]='skillTags' (ngModelChange)="skillTagUpdate($event)">
</input-tags>
Run Code Online (Sandbox Code Playgroud)

在父组件中,如何观察绑定变量的变化?虽然它总是最新的(我已经确认了这一点),但我找不到任何关于对变化做出反应的指导。

我试过了:

ngOnChanges(changes: SimpleChanges) {
    if (changes['skillTags']) {
        console.log(this.skillTags);  // nothing
    }
}
Run Code Online (Sandbox Code Playgroud)

skillTagUpdate(event){
    console.log(event); // nothing
}
Run Code Online (Sandbox Code Playgroud)

更新: TWDB 恕我直言不是它所宣传的那样。每当我到达 TWDB 似乎是一个解决方案的地方时,我都会重新设计服务和/或可观察的通信。

eventemitter angular two-way-binding controlvalueaccessor

11
推荐指数
2
解决办法
5580
查看次数

Angular router.navigate 使用数组作为 queryParams 列表

我在使用表单构建 queryParams 对象后进行导航:

options {
    ...
    words: (4) ["chuck", "norris", "vs", "keanu", "reeves"]
}
Run Code Online (Sandbox Code Playgroud)

然后navigate使用该对象更新 URL 的参数:

this.router.navigate(['/search'], { queryParams: options });
Run Code Online (Sandbox Code Playgroud)

每个条目的URLwords参数都是重复的,如下所示:

/search?words=chuck&words=norris&words=vs&words=keanu&words=reeves
Run Code Online (Sandbox Code Playgroud)

我们如何正确地传入一个数组queryParams

链接: angular.io/api/router/Router#navigate alligator.io/angular/query-parameters

queryParamsHandling 对此没有影响。这是StackBlitz 的重现。

query-string angular

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