我正在使用Angular 2作为注册表单:名字,姓氏,电子邮件和密码.
提交后,数据通过API调用存储在数据库(nodeJs和mongo)中,并生成一个JWT令牌,然后发送回客户端.
现在我应该添加/生成UUID(通用唯一标识符).由于我之前从未做过这种功能,我需要一种方法和想法/解决方案如何实现这一点... JWT令牌是否可以替代UUID?如果是的话,这就足够了.
否则,我宁愿避免对表单或其功能进行任何重大更改.
我一直在寻找,但没有找到有用的解决方案.我尝试了npm包angular2-uuid
,但在将其作为依赖项安装后,ng build -prod
抛出了一个不明确的错误.
import { UUID } from 'angular2-uuid';
....
let uuid = UUID.UUID();
Run Code Online (Sandbox Code Playgroud)
错误:
错误在./~/@angular/flex-layout/@angular/flex-layout.es5.js模块构建失败:错误:ENOENT:没有这样的文件或目录,打开'/ Users/username/dev/app/node_modules/@ angular/flex- layout/@angular/flex-layout.es5.js'@ ./src/$$_gendir/app/app.module.ngfactory.ts 25:0-44 @ ./src/main.ts @多webpack-dev-server /客户端?http:// localhost:4200 ./src/main.ts
有什么想法或提示吗?
我正在使用docker并使用以下命令:
docker run -d -p 9090:80 -v $(pwd):/usr/share/nginx/html nginx:alpine
Run Code Online (Sandbox Code Playgroud)
指向我的/dist
文件夹,我的app文件由angular编译.
我先去/dist
文件夹,然后从那里运行命令.这工作正常,我能够通过端口到达应用程序:9090
但是在docker更新后,我运行错误:
docker:参考格式无效.请参阅'docker run --help'.
我一直在搜索并检查以下发布的docker:无效的参考格式,但它似乎与我的问题不同.以下是基于命令的信息docker version
::
Client:
Version: 17.09.0-ce
API version: 1.32
Go version: go1.8.3
Git commit: afdb6d4
Built: Tue Sep 26 22:40:09 2017
OS/Arch: darwin/amd64
Server:
Version: 17.09.0-ce
API version: 1.32 (minimum version 1.12)
Go version: go1.8.3
Git commit: afdb6d4
Built: Tue Sep 26 22:45:38 2017
OS/Arch: linux/amd64
Experimental: false
Run Code Online (Sandbox Code Playgroud)
有什么好主意吗?
我有两个服务。login.service.ts
和environment-specific.service.ts
。
在login.service.ts
我需要初始化一个 Json 对象,environment-specific.service.ts
从中传递几个链接。
用例是如何在没有 的情况下使其在 servcie 中工作ngOnInit(){}
,因为 ngOnInit()
根据 Angular2 Lifecycle Hook 不能在 servcie 中使用。
在这里你可以找到我必须在里面初始化的部分login.service.ts
- 当然没有ngOnInit()
方法:
...
import { EnvSpecific } from '../models/env-specific';
import { ActivatedRoute } from "@angular/router";
@Injectable()
export class LoginService {
link1: string;
link2: string;
link3: string;
constructor(private http: Http, private fbuilder:FormBuilder, private route: ActivatedRoute) { }
ngOnInit(){
this.route.data
.subscribe((data: { envSpecific: EnvSpecific }) => {
this.link1 = data.envSpecific.link1;
this.link2 = …
Run Code Online (Sandbox Code Playgroud) 我正在为 Angular 7.x 应用程序运行 E2E 测试。测试在我的本地机器上直接运行。但是当我将它推送到 repo (GitLab) 时,管道失败并抛出以下错误:
用户配置文件 - 检查并更改配置文件 - 失败:元素不可交互(会话信息:chrome=71.0.3578.80)(驱动程序信息:chromedriver=2.45.615279(12b89733300bd268cff3b78fc76cb8f3a7cc44e5)-444e5-Linux4
测试用例:
it('USER PROFILE - Check and change PROFILE', () => {
page.navigateTo();
browser.sleep(1000);
expect(page.getProfileEditTagName()).toMatch('app-edit-profile');
expect(element(by.className('logged-as')).getText()).toBe( testEmail );
browser.actions().mouseMove( element.all( by.id('editIcon-salutation') ).get(0)).click().perform().then(function () {
browser.sleep(4000);
element( by.className('mat-select-arrow') ).click().then(function () {
browser.actions().mouseMove( element.all(by.className('option-value mat-option')).get(0)).click().perform();
browser.sleep(1000);
browser.actions().mouseMove( element.all( by.id('saveButton-salutation') ).get(0)).click().perform();
browser.sleep(1000);
});
});
});
Run Code Online (Sandbox Code Playgroud)
navigateTo()
只是profile.po.ts 中的一个方法:
navigateTo() {
browser.get('/profileComponentUrl');
}
Run Code Online (Sandbox Code Playgroud)
令我困惑的是,我什至无法定位错误或错误的地方是它在本地运行良好。但是一旦我推送到 repo,它就会在那个测试用例中完全失败。请问有什么提示吗?
我有一个本地分支有一些更改,我想将它合并到远程主.当我跑:git merge master
我得到:
已经是最新的
但我仍然可以看到主人不包含新的变化.
我检查了以下问题Git合并报告"已经是最新的"虽然存在差异问题,但似乎首先不是最新的,另一方面,没有任何提示有帮助.
有什么想法或暗示吗?
我正在尝试为StackBlitz上的演示提案创建应用程序,并且必须使用Angular 5.2.x,因为我的应用程序仍在使用5.2.x。当我尝试安装依赖项时,我无法从v6降级到v5.2。
我实际上需要例如"@angular/common": "^5.2.10", "rxjs": "^5.5.10", "@angular/http": "^5.2.10"
etc。但这只是迫使我安装v6。
是否有可能避免这种情况并安装所需的版本,或者没有办法?
一直在检查Stackblitz的文档,但没有发现有关这种情况的信息。
我正在使用Angular CLI,当我运行时ng test
,它开始启动浏览器,然后突然出现错误:
userName@UserName:~/devApp/profiles$ng test
10% building modules 1/1 modules 0 active18 09 2017 16:16:51.891:WARN [karma]: No captured browser, open http://localhost:9876/
18 09 2017 16:16:51.903:INFO [karma]: Karma v1.7.0 server started at http://0.0.0.0:9876/
18 09 2017 16:16:51.903:INFO [launcher]: Launching browser Chrome with unlimited concurrency
18 09 2017 16:16:51.915:INFO [launcher]: Starting browser Chrome
ERROR in Entry module not found: Error: Can't resolve '/Users/xxx/devApp/profiles/src/test.ts' in '/Users/xxx/devApp/profiles/node_modules/@angular/cli/models/webpack-configs'
Run Code Online (Sandbox Code Playgroud)
这是文件:test.ts
当我设置项目时通过Angular CLI生成的文件:
// This file is required by karma.conf.js and loads recursively all …
Run Code Online (Sandbox Code Playgroud) 按照这个带有 label 的示例表单字段,我尝试更改mat-form-field
占位符的行为。共有三个选项:
auto
、always
和never
。
该功能确实是一个很好的功能,可以根据开发人员想要实现的占位符类型来使用。
实际上,它可以在全局范围内使用,直接将其传递给@NgModule
应用程序根目录:
@NgModule({
providers: [
{provide: MAT_LABEL_GLOBAL_OPTIONS, useValue: {float: 'always'}}
]
})
Run Code Online (Sandbox Code Playgroud)
并按如下方式构建视图:
<mat-form-field [floatLabel]="never"> // never, auto or always
<input matInput placeholder="Simple placeholder" required>
</mat-form-field>
Run Code Online (Sandbox Code Playgroud)
我的问题是我首先没有找到/知道我确切可以/应该导入的位置:MAT_LABEL_GLOBAL_OPTIONS
因为它似乎不存在@angular/material
,如果我检查这个GitHub-Repo,我看到它是从 导入的@angular/material/core
,但它没有对我不起作用,因为我收到以下错误:
/node_modules/@angular/material/core"' has no exported member 'MAT_LABEL_GLOBAL_OPTIONS'. Did you mean 'MAT_RIPPLE_GLOBAL_OPTIONS'?
它与我使用的材料和 CLI 版本有关吗?
Angular CLI: 1.5.0
Node: 8.0.0
OS: darwin x64
Angular: 5.0.3
... animations, common, compiler, …
Run Code Online (Sandbox Code Playgroud) 我正在使用一个输入字段组件,可以使用表单将其嵌入到不同的父组件中。
在输入子组件中,我有一个 i18n 翻译键作为使用插值的变量,我想根据客户的选择从父组件动态生成它。
输入.组件.ts:
<div i18n="{{labelTextKey}}">{{labelText}}</div>
<div>
<input matInput [required]="required"
[name]="name"
[(ngModel)]="value"
[type]="type">
</div>
Run Code Online (Sandbox Code Playgroud)
表单.组件.ts:
<app-input [labelText]="'Second name'"
[labelTextKey]="'@@LabelSecondName'"
[name]="'secondName'"
[ngModel] = "secondName"
[type] = "'text'"
</app-input>
Run Code Online (Sandbox Code Playgroud)
问题是,运行应用程序时,翻译发生在将密钥传递给子组件中的变量之前,因此 key/id: 没有翻译@@LabelSecondName
。
因此,labelText 保留原始语言。我得到的不是翻译,而是一种随机生成的数字,并且由于这些数字作为密钥不存在于XLF(版本 2.0)文件中,因此文本/标签不会被翻译。
错误信息:
Missing translation for message "8901569964118207331"
该行为在某种程度上是预期的,因为变量:没有及时labelTextKey
获得传递的值: 。@@LabelSecondName
一直在寻找,但无法找到正确的解决方案。这个问题似乎和我的比较接近,但又不完全一样,而且也没有答案。
translation internationalization angular-i18n angular angular-dynamic-components
当我使用以下查询时:
MATCH (emp:Employee)
WHERE emp.supervisor_id = 159
RETURN emp
Run Code Online (Sandbox Code Playgroud)
我得到了4个员工/节点的结果 supervisor_id = 159
对于此查询,我还得到一个结果,即1名员工employeeID = 159
:
MATCH (emp:Employee)
WHERE emp.employeeID = 159
RETURN emp
Run Code Online (Sandbox Code Playgroud)
但是当我使用=
运算符时,它确实会返回(no changes, no records)
.
MATCH (emp:Employee)
WHERE emp.employeeID = emp.supervisor_id
RETURN emp
Run Code Online (Sandbox Code Playgroud)
我认为这是一个逻辑错误,但我无法弄明白.
任何想法请.
angular ×6
angular-cli ×1
angular-i18n ×1
cypher ×1
docker ×1
e2e-testing ×1
git ×1
gitlab ×1
gitlab-ci ×1
merge ×1
neo4j ×1
protractor ×1
stackblitz ×1
translation ×1
unit-testing ×1
uuid ×1