我正在检查代码示例,甚至文档都没有得到任何信息.然后,我谷歌一段时间,仍然没有.
我们为什么打字
ngOnInit() { ... }
Run Code Online (Sandbox Code Playgroud)
代替
private ngOnInit() { ... }
Run Code Online (Sandbox Code Playgroud)
或者,就此而言,只要我抱怨这个话题
private ngOnInit() : void { ... }
Run Code Online (Sandbox Code Playgroud)
拥抱TypeScript的全部力量?
编辑
根据评论我需要扩展问题.我们为什么不写:
public ngOnInit() : void { ... }
Run Code Online (Sandbox Code Playgroud)
代替?
我已经实现了以下控制台输出,以跟踪执行的内容和不执行的内容./ dataList下的页面代码.
export class DataList implements OnInit {
constructor(private service: DataService) {
console.log("constructed");
}
ngOnInit() {
console.log("inited");
...
}
}
Run Code Online (Sandbox Code Playgroud)
现在,它通过输入URL以及使用来自另一个页面的路由访问页面时在控制台中提供输出(即构造和引入)两者的工作原理,如下所示.
this.router.navigateByUrl("/dataList");
Run Code Online (Sandbox Code Playgroud)
但是,当我从此页面导航到详细页面(使用/ dataElement/12345之类的URL ,其中12345是ID)时,它不显示已启动(仅构造),然后返回到执行导航的页面/ dataList通过上面显示的URL.(如果我然后点击F5,我会看到构造和inited,但是.)
我认为甚至不可能进入构造函数而不进入ngOnInit,给定实现的接口,但显然,我错了(并且也非常困惑).
我可以做的最好的诊断是,当从子路径路径导航时,不会调用初始化.但它对我来说似乎很奇怪,所以我怀疑我没有正确诊断它.谷歌搜索没有产生任何我认为充分相关的东西(像这样或者这样).路由就像这样.
const routes: Routes = [
{ path: "", component: StartComponent },
{ path: "dataList", component: DataListComponent },
{ path: "dataElement/:id", component: DataElementComponent …Run Code Online (Sandbox Code Playgroud) 在我的package.json中,我有以下部分用于脚本定义。
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build --prod",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
}, ...
Run Code Online (Sandbox Code Playgroud)
每当我想运行该应用程序时,我都会执行npm start(它执行ngserve)。我也可以 go npm run start达到相同的结果。现在,当我尝试构建我的应用程序时,我进行了npm build,但与我的预期相反,没有执行任何构建(没有错误,也没有,执行完成时没有任何输出到控制台)。我必须改为npm run build(当然,它执行了ng build --prod )。
我不明白其中的差异。
我有原始的curl调用,据说它在Unix 环境中工作(或者他们在提供商办公室使用的任何环境)。
curl
-u ybeepbeepbeepa:eboopboopboopa
-k
-d "grant_type=mobile&customerId=SE.B2C/abcd&pin=1234&scope=openid"
-H "Content-Type:application/x-www-form-urlencoded"
https://xxx/oauth2/token
Run Code Online (Sandbox Code Playgroud)
使用curl 的文档,我将标志和属性交换为以下内容。
Invoke-WebRequest
-User ybeepbeepbeepa:eboopboopboopa
-Method POST
-Headers @{"Content-Type"="application/x-www-form-urlencoded"}
-Uri "https://xxx/oauth2/token?grant_type=mobile&customerId=SE.B2C/abcd&pin=1234&scope=openid"
Run Code Online (Sandbox Code Playgroud)
我唯一未能翻译的部分是-k,它应该相当于--insecure。检查上述文档,我找到了一些可能的替代方案,尽管有些牵强(例如-AllowUnencryptedAuthentication),但它们都失败了,我没有想法。
我正在玩.NET Core下的登录程序,我注意到当我按照指南使用时IdentityDbContext,IdentityUser我会在数据库中自动获得一堆表(例如AspNetUsers,AspNetUserClaims等).
虽然很好,但我想知道使用不那么神奇的东西DbContext并为用户和角色管理创建自己的架构是非常错误的.我更喜欢"杀死自己的食物",以便了解安全性如何工作,我不喜欢使用我不理解的螺栓和螺母的工具和框架.("它就像那样工作",当它停止工作时经常导致问题.)
是身份的一部分IdentityDbContext,IdentityUser等等只是一个方便啄或者是那些应该被使用?
我将定位的技术堆栈是.NET Core 2.0和JWT身份验证.当然,该模型应该由EF在DB中管理.
如果问题是愚蠢的,请原谅.我是安全人员的新手,可能正在咆哮错误的树.
我试图在我的项目中引入Bulma.根据文档,推荐的方法是使用NPM获取它.
纱线加毛
进一步向下的文档,它们显示出与下面的代码线的一例.
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.6.2/css/bulma.min.css">
<script defer src="https://use.fontawesome.com/releases/v5.0.6/js/all.js"></script>
Run Code Online (Sandbox Code Playgroud)
据我所知,如果我们CDN它是NPM包的多余(反过来,如果我们NPM它,CDN是不必要的).在这种特殊情况下,用户可能会遇到一堆棘手的防火墙等等,因此无论如何都可能无法应用CDN.我将不得不依赖自己分发的软件包.但是,当我删除上面的行时,样式消失了,因为Bulma的页面上没有关于如何处理它的信息,我不完全确定如何继续.
在node_modules中,有一个文件bulma.sass以及一组目录,其中包含用于构建大屁股文件的各个asses.我想在我的项目中使它可用.当我用谷歌搜索时,我已经看到了一系列不同的建议:从简单地将文件复制到我的src到关于应用Grunt脚本的冗长而复杂的讨论.不知何故,我觉得有一种直截了当的方式(可能是我见过的那种方式),但是我太困惑了,无法识别它.
如何将已安装的包(驻留在node_modules中)中的样式转换为我的Angular应用程序的src和/或dist文件夹?
奖金问题是我在使用Bumla时应该如何处理FontAwesome链接(除非它与其他框架设置的方式相同,在这种情况下,我可以自己谷歌或提出另一个问题.)
我的控制器中有这个方法。
public IActionResult Download()
{
return Json(_context.Users);
}
Run Code Online (Sandbox Code Playgroud)
我注意到它生成了正确的 JSON 结构,但它在浏览器中呈现为通用文本。我希望将其下载到客户的计算机上。我怎么做?
我不确定是否应该使我的对象以某种方式进行流式传输,或者在我的硬盘驱动器上创建一个文件并像这样提供它。
我找不到任何让我印象深刻的东西,就像我们在 C# 中所习惯的那样直接、简单。所以我担心我在这里遗漏了一个概念。
根据CSS Tricks for grid-template-areas的介绍,如果我为列指定点,则不会占用空间。
根据我的小提琴,它将C替换为点。
div.outer {
display: grid;
grid-template-columns: 40% 30% 10% 20%;
grid-template-rows: 50% 50%;
grid-template-areas: "text text . button" "check span . button";
}
div.outer > div.texty { grid-area: text; }
div.outer > div.checky { grid-area: check; }
div.outer > span { grid-area: span; }
div.outer > div.butty { grid-area: button; }Run Code Online (Sandbox Code Playgroud)
<div class="outer">
<div class="texty">A</div>
<div class="checky">B</div>
<span class="showy">C</span>
<div class="butty">D</div>
</div>Run Code Online (Sandbox Code Playgroud)
在反应形式的文档中,建议我将以下行添加到我的app.module.ts中.
import { ReactiveFormsModule } from '@angular/forms';
...
@NgModule({ imports: [ ReactiveFormsModule, ... ], ... })
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)
然后,在后面的部分中,建议还在我的actual.component.ts中添加以下内容.
import { FormControl, FormGroup } from '@angular/forms';
Run Code Online (Sandbox Code Playgroud)
我试图跳过模块部分,只导入组件中的东西,这似乎有效,据我所知.对我来说似乎是合理的,如果我做相反的事情并添加了模块部分,我就不必导入该模块的组件.这是模块部件和组件部分的组合让我感到困惑.
我不明白这两个操作的目的在一起.他们为什么这样做?
我已经设置了如下所示的样式。
div>span {
display: flex;
flex: 1 0 0;
align-self: center;
align-items: center;
justify-content: flex-end;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,省略的三人组似乎只实现了隐藏和现在的隐藏,而不是省略。经过一些研究,我知道它与计算的可用宽度有关,但我看不出它对我有什么帮助。
显然,宽度已经超出了(因为溢出的部分被切掉了)。我得到的最接近工作示例是当我关闭设置为弯曲的显示器时。对于块它可以工作,但对于柔性则不行。
我真的很想使用 Flex,因为它解决了很多其他问题。如何调整示例,使其保留显示的灵活性并仍然省略文本?
我正在尝试为我的用户生成一个文本文件,下面的代码在IE和Edge之外的所有浏览器中完美地完成了工作(在后者中,我无法控制文件的名称,但至少它已经生成).
emitFile(stage: any): void {
const blob = new Blob([stage.elaboration], { type: "text/csv" });
const url = window.URL.createObjectURL(blob);
const anchor = document.createElement("a");
anchor.href = url;
anchor.download = "ff-rocks-ie-sucks.txt";
anchor.click();
}
Run Code Online (Sandbox Code Playgroud)
在这方面有一张公开的发行票,但它的日期是18个月前,最近的活动相当不紧急.似乎这是一个希望夭折的地方.
我还没有找到任何合理的解决方法.我见过的那些人要么不工作,要么包含一个(非常明智但不可行)的建议,为了鸭子的缘故得到体面的浏览器.而且我认为这更像是一个错字而不是鸟类参考.
该怎么办呢?