- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在做 Angular2 英雄之旅项目 https://angular.io/docs/ts/latest/tutorial/toh-pt2.html.
<li *ngFor="let hero of heroes" (click)="onSelect(hero)">{{hero.name}}</li>
这里我可以使用下面的函数提醒当前英雄的名字和id
onSelect(hero) {
alert(hero.id);
}
但是为什么在官方教程中是用
onSelect(hero: Hero){
}
为什么英雄:英雄?
还有 onSelect(hero: Hero): void { }
的含义是什么。
什么意思
selectedHero: Heroes;
onSelect(hero: Heroes): void {
this.selectedHero = hero;
}
请帮忙。
最佳答案
当您键入“hero”时,它会假定它的类型为“any”。当你说 hero: Hero 时,你将变量的类型限定为“Hero”,这意味着该函数将只接受 Hero 类型的参数或其抽象。
编辑:对于 void 部分,这是函数的返回类型。 Void 表示它不会返回任何内容。
编辑2:
selectedHero: Hero
OnSelect(hero: Hero): void{
this.selectedHero = hero;
}
因此,您在“selectedHero: Hero”部分定义了一个类型为“Hero”的变量“selectedHero”。
您定义函数“OnSelect”,它接受类型为“Hero”的参数“hero”。 “英雄”将是您用来访问“OnSelect”函数中的参数的名称。
该函数返回 void,这意味着它不返回任何内容,只执行函数中声明的操作。
这部分 this.selectedHero = hero;更棘手。在您的组件上方,您定义了一个名为“hero”的 Hero 变量。它超出了函数的范围。 'this' 指的是您所在的组件类,它是用于访问它的关键字。因此,要访问函数之外但仍在对象中的变量,请使用关键字“this”。
好的,当您点击一个英雄时,OnSelect 函数被触发,您传递您刚刚点击的英雄(英雄:'Hero')。然后,您要做的是将当前对象 (this.selectedHero) 的英雄设置为您刚刚单击的英雄 (hero: Hero)。
每次你点击一个英雄,它会用你点击的英雄替换selectedHero。
PS:我对“this”关键字的解释尽可能抽象,我知道还有很多内容然后我解释了,但这是为了提问的人,因为他是开发新手.
关于Angular2英雄之旅 - onSelect中的冒号是什么(英雄: Hero) mean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42486561/
在我的DLL中,我已使用System.ObsoleteAttribute将虚拟方法标记为已过时,但这不会产生我所期望的警告。 DLL源(Baz): [Obsolete("This method has
当我输入 DPRtelephonenumber 时,我想在 DPRcallerhometelephonenumber 中重复它。 只要我在打字,这个脚本就可以工作。但是,如果 提供了一个以前使用过的值
这个问题已经有答案了: jQuery - how to alter Datepicker settings after it has been initialized (3 个回答) 已关闭 6 年前
我的日期选择器出现问题。我需要自定义这个日期选择器,但是当我尝试自定义它们时它不起作用。示例: 我有这个 html 代码: 在 javascript 上我尝试这样做: $('
我在 React 类中有工作代码 但是当我更改为 React.Component 时,整个 UI 都崩溃了。 调试了代码,我认为问题出在这个 onSelect 函数上。 因为如果我给控制台语句它不会打
这是我正在尝试的代码 - DIVS- ... ... ... ... 现在我有一个下拉菜单,我从中获取值 16,17, 18,19 在这个下拉菜单中,我调用了 onchange 方法作为 我的 Ja
我有一个日期选择器,但 onClose 和 onSelect 不会触发。代码位于 document.ready 中,因此我知道它已初始化。 $('#DateRangeTo').datepicker({
我试图在 jquery datePicker 对象上处理相同的 onSelect 事件两次。据我了解,该事件可以多次处理,但是当我尝试这样做时,只有一个事件处理程序被触发。它似乎解雇了第二个处理程序,
我无法在 jQuery datepicker 上使用 onSelect。 这是我的代码: $(function() { $('.date-pick').datePicker( {
我一直在尝试获取在 jsTree 中选择的节点的文本。我能够填充树并触发 onSelect 事件,但我无法找出单击了哪个节点。我在网上看到过使用 data.rslt.obj.attr("data")
查看最后的编辑 我刚刚开始使用CodeMirror对于一个项目,我面临着一个我根本不理解的问题。 问题在于处理 CodeMirror 的事件,特别是在 "select" 事件上,因为我正在处理 "ch
当选择日期时,我必须调用 JavaScript 函数,JavaScript 如下, $(document).ready(function(){ var date_input=$('input[
假设我想在用户突出显示包含该范围的一些文本时隐藏该范围,以便将该文本复制到剪贴板上。 例如: The dragon a large, mythical beast belched fire at St
我正在使用定义如下的文本区域: 我试图检测用户何时选择某些文本以及 onselect似乎很适合这个。它在 w3schools 示例上完美运行,我让它工作为: 但是当我将其更改为我自己的函数时,什么
我试图从 AJAX 捕获另一个值,但它给了我一个错误 Uncaught TypeError: e.replace is not a function。 这是我的代码。 source: fun
我使用的是ngx-chips,但无法实现OnSelected函数。 在我的 app.component.html 中我有这个: 在我的 app.component.
我有一个 标签,我希望它在选择一个选项时更改隐藏输入的值。我的想法是使用这个: Option 1 is selected... 然后是这个 function stuff() { document.g
我正在使用 pixabay 自动完成 ( https://goodies.pixabay.com/jquery/auto-complete/demo.html ) 经过一些测试,我设法将纯文本结果列表
如果单击第 1 天或第 3 天,我想在输入字段中打印“18:00-19:00”,否则为“11:00-12.00”,即第 6 天。 除 onselect 函数外,以下所有代码都按预期工作。 jQuery
我有 2 个微调器元素,我想在用户更改任何微调器的选择时仅启动一个异步任务。 问题是,当我在我的设备上启动 Activity 时,两个异步任务都会立即启动,即使用户没有选择任何东西。 我尝试过的:
我是一名优秀的程序员,十分优秀!