我试图弄清楚如何在反应形式中使用管道,以便输入被强制为货币格式.我已经为此创建了自己的管道,我已经在代码的其他区域进行了测试,所以我知道它可以作为一个简单的管道工作.我的管道名称是'udpCurrency'
我在堆栈溢出上找到的最接近的答案就是这个:在Angular2-View中的INPUT元素中使用ngModel中的管道然而这在我的情况下不起作用,我怀疑它与我的表单是被动的事实有关
以下是所有相关代码:
模板
<form [formGroup]="myForm" #f="ngForm">
<input class="form-control col-md-6"
formControlName="amount"
[ngModel]="f.value.amount | udpCurrency"
(ngModelChange)="f.value.amount=$event"
placeholder="Amount">
</form>
Run Code Online (Sandbox Code Playgroud)
组件
import { Component, OnInit, HostListener } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
export class MyComponent implements OnInit {
myForm: FormGroup;
constructor(
private builder: FormBuilder
) {
this.myForm = builder.group({
amount: ['', Validators.required]
});
}
}
Run Code Online (Sandbox Code Playgroud)
错误:
ERROR Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'undefined: '. Current value: 'undefined: undefined'
Run Code Online (Sandbox Code Playgroud) Github 允许用户添加 SSH 密钥以访问存储库,但它并没有很好地解释“身份验证密钥”和“签名密钥”之间的区别我想知道的具体问题是:
我是否需要两种类型的密钥才能访问存储库?
如果我只添加一个键并且该键是“歌唱键”,那我是否也可以简单地检查代码?换句话说,签名密钥也可以进行身份验证吗?
如果我想同时进行身份验证和签名,这些密钥是否必须彼此不同,或者我可以对两者使用完全相同的密钥吗?
如果这些密钥必须彼此不同,我如何在我的服务器上配置 Git 来发送这两个密钥,因为我认为这是必要的,对吗?
我有一个非常复杂的问题,我认为我可以通过编写一个mongo shell脚本来解决,但我甚至无法建立一个简单的连接.我有一个本地mongo数据库,需要一个我通常访问的用户名/密码,如下所示:
mongo admin -u <username> -p
Run Code Online (Sandbox Code Playgroud)
在这一点上,我输入密码和万岁!我有一个壳.但这对我的问题不起作用.作为测试,我创建了一个名为test.js的文件,其中包含的是:
var conn = new Mongo()
db = conn.getDB("test");
db.cust.find();
Run Code Online (Sandbox Code Playgroud)
然后我从命令行运行脚本,如下所示:
mongo test.js
Run Code Online (Sandbox Code Playgroud)
在这一点上,我得到这个:
MongoDB shell version: 2.4.10
connecting to: test
Run Code Online (Sandbox Code Playgroud)
为什么我没有结果?
我觉得自己像是一个不得不问这个问题的白痴,而且我已经完成了所有类似的问题而无济于事.我正在mac上运行Ubuntu 14.04 in vagrant vm.我安装了composer,我运行了这些命令:
composer global require "laravel/installer"
Run Code Online (Sandbox Code Playgroud)
(这似乎有用,并表明laravel是下载的东西之一)
我还将此行添加到.bashrc中
export PATH="?/.composer/vendor/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
注意,我将此添加到vagrant用户以及root用户.bashrc文件中.我已经注销并返回shell并使用此命令验证了路径:
echo $PATH
Run Code Online (Sandbox Code Playgroud)
这给了我这个:
〜/ .composer /供应商/斌:〜/ .composer /供应商/斌:在/ usr/local/sbin中:在/ usr/local/bin目录:/ usr/sbin目录:在/ usr/bin中:/ sbin目录:/ bin中:在/ usr /游戏:在/ usr /本地/游戏
失败的命令本身就是这个
laravel new test
Run Code Online (Sandbox Code Playgroud)
我没有看到我可能遗失的东西,任何想法?
我有一个非常复杂的问题,但我把它缩小到这个,首先,让我给你一些测试数据:
运行这个:
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`value` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
INSERT INTO test (value) VALUES
(1),
('1'),
('1,2'),
('3');
Run Code Online (Sandbox Code Playgroud)
现在运行此查询:
SELECT * FROM test WHERE value = 1;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我希望只获得前两行,其中值作为数字1或'1'字符输入,但由于某种原因,这是我得到的:
1, 1
2, 1
3, 1,2
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么我得到第三排?
注意:这是我的mysql版本:5.6.28-0ubuntu0.14.04.1
此外,我已经通过使用FIND_IN_SET解决了我的原始问题,并且我知道将逗号分隔的列表类型结构放在一起并不是一个好主意,也就是说,它应该首先使用连接表来完成.不幸的是,我在一个非常庞大的系统中工作,并且目前这种改变是不切实际的.
我只是对这种特定行为发生的原因感兴趣.
我正在学习打字稿,我注意到编译好的javascript对每个类都有一个注释:/**@class*/
例:
var Student = /** @class */ (function () {
function Student(firstName, middleInitial, lastName) {
this.firstName = firstName;
this.middleInitial = middleInitial;
this.lastName = lastName;
this.fullName = firstName + " " + middleInitial + " " + lastName;
}
return Student;
}());
Run Code Online (Sandbox Code Playgroud)
我的问题是这个评论是否具有任何功能价值,还是仅仅是语法糖?另外,如果它确实有功能,那么功能是什么?
我正在尝试从 Windows 10 中运行的 Visual Studio Code 中运行 .sh 脚本(该脚本本身应该在 Flask 中启动一系列单元测试),并且出于某种原因,无论我尝试什么,它都只会打开文件进行编辑而不是实际运行该文件。
这是我正在输入的确切命令:
C:\Users\my.user\MyRepo>.\scripts\run-unit-tests.sh
Run Code Online (Sandbox Code Playgroud)
这是我的笔记:
这是 Windows 10 的全新安装,我相信我已启用 WSL2
我完全不熟悉在 Windows 中进行开发(来自 Ubuntu/Linux 背景)
我的目标是从 VS Code 的内置终端运行此脚本,但是我也尝试从 cmd 提示符和 powershell 运行它,这两种方法也会导致在 VS Code 中打开文件。
附录:更多说明:
我实际上有两台Windows机器。一台是我的个人机器,另一台是我的工作提供的。无论出于何种原因,该文件在我的个人计算机上运行良好,但在我的工作计算机上却不起作用。此外,bash 脚本位于我公司其他人创建的存储库中,因此我确信可以在不修改 .sh 文件本身的情况下运行它。
我有一个输入字段只有在设置了另一个值时才需要.另一个值来自select.请注意,我的实际形式要复杂得多,但这里是一个示例,显示与此问题相关的部分:
模板:
<form name="createPaymentForm" (ngSubmit)="f.form.valid && createPayment()" #f="ngForm" novalidate>
<select name="orderNumberType" #orderNumberType="ngModel"
[(ngModel)]="payment.orderNumberType">
<option [ngValue]="undefined" disabled>Select</option>
<option *ngFor="let opt of paymentIdOptions" [value]="opt.id">{{opt.label}}</option>
</select>
<div [ngClass]="{ 'has-error': f.submitted && !orderNumber.valid }">
<input type="text" name="orderNumber"
[(ngModel)]="payment.orderNumber" #orderNumber="ngModel">
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
组件:
import { Component, OnInit } from '@angular/core';
import { PaymentsService } from '../../../services/payments.service';
import { Payment } from '../../../models';
@Component({
selector: 'app-new-payment',
templateUrl: './new-payment.component.html',
styleUrls: ['./new-payment.component.scss']
})
export class NewPaymentComponent implements OnInit {
paymentIdOptions: any = [];
payment: Payment = {};
constructor( …Run Code Online (Sandbox Code Playgroud) 这看起来很简单,但它不起作用(对我来说)
我正在运行一个Angular 5应用程序,其中有三个文件位于以下位置:
app_directory/tsconfig.json
app_directory/src/app/services/my-service.service.ts
app_directory/src/app/main/sub1/sub2/my-component.component.ts
Run Code Online (Sandbox Code Playgroud)
在my-component.component.ts文件中,我可以使用以下行成功导入my-service:
import { MyServiceService } from '../../../services/my-service.service.ts'
Run Code Online (Sandbox Code Playgroud)
虽然这一切都很好,但是每次我想要导入这个服务时都必须放置相对路径,所以我对SO进行了一些检查并且发现了这个帖子:如何避免Angular中具有很长相对路径的导入2?
所以我试图做同样的事情并将我的tsconfig.json更改为以下内容:
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./src/app/",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017",
"dom"
]
}
}
Run Code Online (Sandbox Code Playgroud)
并将我的导入更改为:
import { MyServiceService } from 'services/my-service.service.ts'
Run Code Online (Sandbox Code Playgroud)
但当然这不起作用.所以(不改变导入)我为baseUrl尝试了以下值:
.
./
./app
./src
./app/
./src/
src/app
src/app/
Run Code Online (Sandbox Code Playgroud)
似乎tsconfig baseUrl根本没有任何效果.我在这里错过了什么?
这一直在驱使我爬墙。我几乎在使用 ngx-bootstrap 手册中的示例:https ://valor-software.com/ngx-bootstrap/#/buttons#radio-reactiveforms ,但它不起作用。这是我的模板和组件:
模板:
<pre class="card card-block card-header">{{ myForm.value | json }}</pre>
<form [formGroup]="myForm" class="form-inline">
<div class="form-group">
<div class="btn-group" btnRadioGroup formControlName="radio">
<label btnRadio="A" class="btn btn-primary">A</label>
<label btnRadio="B" class="btn btn-primary">B</label>
<label btnRadio="C" class="btn btn-primary">C</label>
</div>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
成分:
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
@Component({
selector: 'demo-buttons-radio-reactiveforms',
templateUrl: './keyed-payment.component.html',
styleUrls: ['./keyed-payment.component.scss']
})
export class KeyedPaymentComponent implements OnInit {
myForm: FormGroup;
constructor(private formBuilder: FormBuilder) {}
ngOnInit() {
this.myForm = this.formBuilder.group({
radio: …Run Code Online (Sandbox Code Playgroud) angular ×4
typescript ×2
angular-pipe ×1
bash ×1
composer-php ×1
github ×1
javascript ×1
laravel ×1
mongo-shell ×1
mongodb ×1
mysql ×1
validation ×1
windows-subsystem-for-linux ×1
wsl-2 ×1