在安装Angular Material之后尝试进行编译时,我遇到了一系列警告(无论是直接来自npm还是通过,ng add @angular/material以及是否选择使用动画)。
它可以正常工作而没有任何警告或问题。有人可以帮助我吗?
以下是警告:
git:(master) ? ng serve
** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
Date: 2019-06-02T16:53:30.127Z
Hash: 790c60ed1be271555fcc
Time: 13875ms
chunk {main} main.js, main.js.map (main) 10.4 kB [initial] [rendered]
chunk {polyfills} polyfills.js, polyfills.js.map (polyfills) 237 kB [initial] [rendered]
chunk {runtime} runtime.js, runtime.js.map (runtime) 6.08 kB [entry] [rendered]
chunk {styles} styles.js, styles.js.map (styles) 181 kB [initial] [rendered]
chunk {vendor} vendor.js, vendor.js.map (vendor) 6.73 MB …Run Code Online (Sandbox Code Playgroud) 我希望使用NodeJS驱动程序通过MongoDB循环查询各种集合.对于此测试,我使用了'findOne'文档中的示例代码在各种集合中插入了一堆文档:
collection.insertMany([{a:1, b:1}, {a:2, b:2}, {a:3, b:3}], {w:1}, function(err, result) {
test.equal(null, err);
Run Code Online (Sandbox Code Playgroud)
同时创建各种集合(每个集合至少有一个先前插入的文档实例):
我想要的是收集我在DB中的集合列表('test'在我的例子中):
var MongoClient = require("mongodb").MongoClient,
test = require("assert");
MongoClient.connect("mongodb://localhost:27017/test", function(err, db) {
db.listCollections().toArray(function(err, items) {
test.ok(items.length >= 1);
console.log(items);
db.close();
});
});
Run Code Online (Sandbox Code Playgroud)
然后会弹出前面提到的集合列表.到目前为止,一切都是正确的!我甚至可以遍历数组来获取集合的名称:
var MongoClient = require("mongodb").MongoClient,
test = require("assert");
MongoClient.connect("mongodb://localhost:27017/test", function(err, db) {
db.listCollections().toArray(function(err, items) {
test.ok(items.length >= 1);
items.forEach(c => {
console.log(c.name);
});
db.close();
});
});
Run Code Online (Sandbox Code Playgroud)
再没有问题!但是当我在循环中尝试查询时:
var MongoClient …Run Code Online (Sandbox Code Playgroud) 我在JS上看到了一些关于无限循环的答案,我认为它对我的代码有帮助,但它似乎没有正常工作.我有这个:
var i = 0
while (true) {
setTimeout(() => {
i ++
console.log('Infinite Loop Test n:', i);
}, 2000)
}
Run Code Online (Sandbox Code Playgroud)
目标是在无限循环中每2秒获取一次日志,但我似乎无法得到任何回报......我在哪里弄错了?
提前感谢您的帮助!
我真的很沮丧,因为我不知道发生了什么。今天早上一切正常,就在我进行了一些更改以将 ReactiveForm 中的 2 个表单合并在一起之前,现在我在浏览器中收到以下错误:
错误:StaticInjectorError(AppModule)[FormGroup]:
StaticInjectorError(Platform:core)[FormGroup]:NullInjectorError:没有提供程序组!错误:StaticInjectorError(AppModule)[FormGroup]:
StaticInjectorError(Platform:core)[FormGroup]:NullInjectorError:没有提供程序组!
我正在导入FormsModule并ReactiveFormsModule在我的app.module.ts文件中:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
[...]
@NgModule({
declarations: [
AppComponent,
CustomersComponent,
HeaderComponent,
CustomersListComponent,
CustomerEditComponent
],
imports: [
BrowserModule,
AppRoutingModule,
FormsModule,
ReactiveFormsModule,
...
HttpClientModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)
然后是我组件中的 FormGroup:
import { FormGroup, FormControl, Validators } from '@angular/forms';
[...]
Run Code Online (Sandbox Code Playgroud)
然后在组件中声明一个新的 FormGroup 。我尝试@angular/forms使用 npm重新安装该软件包,但仍然出现错误...我看过一些类似的问题,但据我所知,这与测试环境有关。如果您有任何想法,请提前致谢。
首先,感谢@ AJT_82提供的建议!
我一直在研究一个更简单的代码重现错误的示例,可以在stackblitz.com/edit/angular-42gobh中
找到该错误。注释了有问题的行,以便您可以检查出正确的结果。只需取消注释, <div [formGroup]="i"></div> 就可以使一切崩溃。
基本上,我有一个为组件构建表单的服务,并且HTML文件使用Angular Material。当手风琴用于formArray时,应用程序完全崩溃,并且无法正确分配formGroup:
customer-edit.service.ts:
import { Injectable } from '@angular/core';
import { FormGroup, FormBuilder, FormArray, Validators } from '@angular/forms';
@Injectable({
providedIn: 'root'
})
export class CustomerEditService {
private cusForm: FormGroup = this.fb.group({
thirdParty: this.fb.group({
name: this.fb.control(null),
vat: this.fb.control(null),
corpoPhone: this.fb.control(null),
corpoMail: this.fb.control(null),
corpoWeb: this.fb.control(null),
activityNumber: this.fb.control(null),
addresses: this.fb.array([]),
contacts: this.fb.array([])
}),
docRefs: this.fb.group({}),
commentsArr: this.fb.group({})
});
constructor(
private fb: FormBuilder
) { }
// **** EMPTY FORMS GETTERS …Run Code Online (Sandbox Code Playgroud) 我很烦你,因为我想用node.JS将字符串转换为浮点数.我有一个从请求返回的字符串,看起来像:(
x,xxx.xxxx例如4,530.1200),我想将它转换为浮点数:( xxxx.xxxx或4530.1200).我试图使用:
parseFloat(str)但它返回4.我也在Float.valueOf(str)网上找到了但是我收到了一个ReferenceError: Float is not defined错误.
我已经在SO上检查了这个问题,因为我有类似rails的问题.我正在努力使AJAX请求工作(查找一些金融代码),我认为我对我的代码很满意(至少我希望)但我仍然得到这个奇怪的错误:
bootstrap.self-fdc98dee79ee88255e10cac6caa91338165cb76cf0d263744d8d90011fc2ef8f.js:3未捕获TypeError:$(...).popover不是HTMLDocument中的函数.(bootstrap.self-fdc98dee79ee88255e10cac6caa91338165cb76cf0d263744d8d90011fc2ef8f.js:3)在火(jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js:3233)在Object.fireWith [按resolveWith](jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js:3363)在Function.ready(jquery的. self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js:3583)at HTMLDocument.completed(jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js:3618)
这是我的脚本:
var init_stock_lookup;
init_stock_lookup = function() {
$('#stock-lookup-form').on('ajax:success', function(event, data, status) {
$('#stock-lookup').replaceWith(data);
init_stock_lookup();
})
}
$(document).ready(function() {
init_stock_lookup();
})
Run Code Online (Sandbox Code Playgroud)
这是页面:
<div id="stock-lookup">
<h3>Search for stocks</h3>
<%= form_tag search_stocks_path, remote: true, method: :get, id: 'stock-lookup-form' do %>
<div class="form-group row no-padding text-center col-md-12">
<div class="col-md-10">
<%= text_field_tag :stock, params[:stock], placeholder: "Stock ticker symbol", autofocus: true, class: 'form-control search-box input-lg' %>
</div>
<div class="col-md-2">
<%= button_tag(type: :submit, class: "btn btn-lg btn-success") do …Run Code Online (Sandbox Code Playgroud) angular ×3
node.js ×3
formgroups ×2
collections ×1
database ×1
documents ×1
formarray ×1
forms ×1
jquery ×1
loops ×1
mongodb ×1
ngfor ×1
settimeout ×1
string ×1
while-loop ×1