我创建了一个指令来限制input字段的长度type=number。
//输入
<input min="1" appLimitTo [limit]="5" type="number" name="property" [(ngModel)]="property">
Run Code Online (Sandbox Code Playgroud)
//指令
import {Directive, HostListener, Input} from '@angular/core';
@Directive({
selector: '[appLimitTo]',
})
export class LimitToDirective {
@Input() limit: number;
@Input() ngModel: any;
@HostListener('input', ['$event'])
onInput(e) {
if (e.target.value.length >= +this.limit) {
e.target.value = (e.target.value).toString().slice(0, this.limit - 1);
e.preventDefault();
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我们通过键盘输入值,则效果很好。但是,如果我复制并粘贴12345678913465789此数字,则会出现问题,该行将其e.target.value = (e.target.value).toString().slice(0, this.limit - 1);缩短到极限,但ngModel仍然包含12345678913465789值。如何更新此ngModel值?
请帮忙。
PS-我应该在指令中添加些什么以满足要求?
我需要从单选按钮中获取价值。假设具有以下html代码:
<label class="radio-inline">
<input class="form-check-input" type="radio" [(ngModel)]="dog" name="gob" value="i" [checked]="true" (change)="onItemChange(item)"/>Dog
</label>
<label class="radio-inline">
<input class="form-check-input" type="radio" [(ngModel)]="cat" name="cat" value="p" (change)="onItemChange(item)"/>Cat
</label>
Run Code Online (Sandbox Code Playgroud)
在我的ts页面中,我需要获取单选按钮的值,例如
dog.value
Run Code Online (Sandbox Code Playgroud)
我的目的是:
有人可以帮助我吗?
我使用了一个 Angular 库,它有一个组件,它使用 CustomEvents 来调度一些东西,就像这样:
const domEvent = new CustomEvent('unselect', {
bubbles: true
});
this.elementRef.nativeElement.dispatchEvent(domEvent);
Run Code Online (Sandbox Code Playgroud)
如何在父组件中收听此事件?
我知道这是不鼓励的,我通常应该使用EventEmitters. 但是我无权覆盖子组件并且没有@Output定义事件。所以这是我唯一可以使用的东西。
我正在使用最终的Angular 2发行版.我已经设置了官方网站angular 2 quickstart中提到的启动文件.在我的app.component.ts文件中,我制作了2个组件.代码如下所示: -
import { Component, OnInit} from '@angular/core';
@Component({
selector: 'demo',
template:`
<h2>Hi, demo !!</h2>
`
})
export class DemoComponent implements OnInit{
constructor(){}
ngOnInit(){
}
}
@Component({
selector: 'my-app',
template: `<h1>My First Angular 2 App</h1>
<demo></demo>
`
})
export class AppComponent implements OnInit{
constructor(){}
ngOnInit(){
}
}
Run Code Online (Sandbox Code Playgroud)
在my-app的组件中,我使用了指令选择器,它是一个数组.但编辑器(VS Code)显示错误.chrome控制台抛出错误,告诉
模板解析错误:'demo'不是已知元素:

请帮我解决这个问题.谢谢
这是我的app.module.ts文件
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent …Run Code Online (Sandbox Code Playgroud) 我想在我的Angular 4项目中添加一个带有ngx-infinite-scroll的无限滚动.
阵列数据有大约800个来自API的帖子.
最初,我想显示20个帖子,每次滚动页面时,都会显示20个帖子.
目前,每当我向下滚动时,我都可以看到控制台日志消息(滚动!).
但是当我滚动它时,我无法弄清楚如何将20个帖子附加到表中.
这是我正在尝试的代码.
onScrollDown函数
onScrollDown(){
this.dataService.getPosts().subscribe((posts)=>{
for (let post of posts){
let data = '<tr><td>'+ post.title +'</td><td>'+ post.geo +'</td><td>'+ post.Telephone +'</td><td>'+ post.category +'</td><td>Detail</td></tr>';
$('table.feed tbody').append(data);
}
});
Run Code Online (Sandbox Code Playgroud)
.
这是组件代码.
posts.component.html
<div *ngIf="posts?.length > 0;else noPosts" class="search-results" infinite-scroll [infiniteScrollDistance]="2" [infiniteScrollUpDistance]="2" [infiniteScrollThrottle]="50" (scrolled)="onScrollDown()" [scrollWindow]="false">
<table class="responsive-table feed striped">
<thead>
<tr>
<th>Name</th>
<th>State/City</th>
<th>Phone</th>
<th>Category</th>
<th></th>
</tr>
</thead>
<tbody>
<tr *ngFor="let post of posts | filter:term">
<td>{{post.title}}</td>
<td>{{post.geo}}</td>
<td>{{post.Telephone}}</td>
<td>{{post.category}}</td>
<td>Detail</td>
</tr> …Run Code Online (Sandbox Code Playgroud) 我创建了一个Pipe名为trim. 此管道旨在从字符串中删除最后一个字符。这是我的管道类TrimPipe。在 HTML 中使用管道时,控制台不会记录这些值。这里的 HTML 用法 -
<ng-container *ngFor="let bg of backgrounds.preferred">
<span>{{bg.name ? (bg.name + ', ') : '' | trim}}</span>
</ng-container>
Run Code Online (Sandbox Code Playgroud)
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'trim'
})
export class TrimPipe implements PipeTransform {
transform(value: any, args?: any): any {
console.log(value, args, 'Pipes');
return value.toString().substring(0, value.length - 1);
}
}
Run Code Online (Sandbox Code Playgroud)
我的app.module.ts档案——
import {BrowserModule} from '@angular/platform-browser';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {NgModule} from '@angular/core';
import {FormsModule} from …Run Code Online (Sandbox Code Playgroud) 现在我在下面有这个标签。它是静态的,将始终获得ID为3的注释。是否有可能在此graphQL-tag中放入变量。因此,我可以重新使用graphQL-tag,仅更改变量ID?
export const GET_COMMENTS: any = gql`
{
comments(id: 3) {
userId,
text,
creationDate,
}
}
`;
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我有一个在指定时间限制写入请求的表。我想更多地了解 AWS-SDK 如何处理它们。
根据我目前的理解,DynamoDB 将向我的 Lambda 返回错误。这就是为什么我会在 DynamoDB 表指标中出现用户错误。但是,AWS-SDK 具有错误处理和重试策略,可以帮助我重试并将受限制的请求写回表中。这是对的吗?
获得一些关于 path_provider-1.5.1 和 API 不工作的注意事项,我通过 http/dio 在 Release Build(在调试模式下工作)为 Flutter 集成。
注意:/home/webelightpc/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider-1.5.1/android/src/main/java/io/flutter/plugins/pathprovider/PathProviderPlugin.java 使用或覆盖已弃用的 API。注意:使用 -Xlint:deprecation 重新编译以获取详细信息。注意:某些输入文件使用或覆盖已弃用的 API。注意:使用 -Xlint:deprecation 重新编译以获取详细信息。
Flutter(通道大师,v1.9.1-pre.58)
我编写了一个自定义本机视图并通过 flutter 嵌入视图使用它。然后我设置io.flutter.embedded_views_preview为truein Info.plist。它在 iOS 模拟器中运行良好,但当我在 iPhone 上运行时,只显示黑屏。当我删除 io.flutter.embedded_views_preview时它可以显示其他小部件Info.plist,但这也导致嵌入视图无法显示。
angular ×5
flutter ×2
javascript ×2
angular-pipe ×1
angular6 ×1
angularjs ×1
aws-lambda ×1
dart ×1
dom-events ×1
graphql ×1
graphql-js ×1
graphql-tag ×1
html ×1
input ×1
ios ×1
pipe ×1
typescript ×1