selector: '[myHighlight]',
@Input('myHighlight') highlightColor: string;
我觉得奇怪/违反直觉的是,我们不必像这样指定选择器属性(尽管如果我们这样写,它仍然有效):
<span myHighlight [myHighlight]="color">highlight me</span>
相反,我们只需要指定input属性,就可以神奇地得到指令:
<span [myHighlight]="color">highlight me</span>
我不喜欢这个“快捷方式”/语法糖/魔法,因为它看起来像是绑定到span
元素的myhlight
属性,而不是实际发生的事情:我们绑定到myhlight
属性指令的myhlight
属性。因此,仅仅通过查看HTML,我们不能很容易地确定MyHighlight
属性绑定到哪个元素/组件/指令。
<div [accessKey]="...">
accesskey
是HTML元素属性还是带有输入属性的属性指令,该属性属性也名为accesskey
?(仅供参考,accesskey
是有效的HTML元素属性,因此本例不是属性指令。)
回到高亮指示...如果将输入属性名称更改为HighlightColor
:
@Input() highlightColor: string;
然后,我必须指定属性选择器和属性绑定,我发现它不那么含糊:
<span myHighlight [highlightColor]="color">highlight me</span>
<p *ngIf="condition">
text here
</p>
相当于
<template [ngIf]="condition"> <--- binds input property ngIf to NgIf directive, not to template
<p>
text here
</p>
</template>
我只是不喜欢属性名称和选择器的混合。
在NG-CONF2016上,我和Alex Rickabaugh谈了我的担忧,Alex Rickabaugh是棱角团队的成员之一。他指出,语法在其他方面也是模棱两可的。例如,我们讨论了以下语法:
<my-comp [whatIsThis]="someProperty">
通过阅读HTML我们无法判断WhatishThe
是否是具有相同名称的输入属性的指令,或者WhatishThe
是否是my-comp
组件的输入属性。
我想底线是,在Angular 2中,我们不能简单地通过查看HTML来理解发生了什么样的绑定。我们必须了解应用程序使用的指令和组件。倒霉。
问题内容: 请考虑以下来自Shiro 界面的API方法,但也可能存在于其他库中: 是的,即使是现在,仍然有一些库使用原始类型,可能是为了保留Java 1.5之前的兼容性? 如果我现在想将此方法与流或类似的可选项一起使用: 我收到有关未经检查的转换和使用原始类型的警告,我更喜欢使用参数化类型。 蚀: 类型安全:方法collect(Collector)属于原始类型Stream。泛型类型Stream 的
问题内容: 根据API文档,伪指令的属性已弃用,因此将来,所有伪指令的行为都将使用当前默认值。 这消除了开发人员替换element指令的element的能力,而没有明显替代此功能的能力。 有关如何使用元素指令和不使用元素指令的示例,请参见此示例。 为什么不推荐使用此有用的属性而不进行替换? 问题答案: 在下一个主要的Angular版本中,将删除用于定义替换其所在元素的指令的标志。此功能具有难以理解
几个小时前我刚刚安装了WebStorm 8。我一直在写一些AngularJS的东西,我有一个相当烦人的小问题。AngularJS插件似乎部分工作,每当我键入ng时,我都会得到一个智能感知弹出窗口,显示所有各种ng-*属性。然而,这就是事情停止工作的地方。我似乎没有在.js文件或.html文件中获得更高级的智能感知功能。如果我在app.js中创建一个名为“app”的角度模块,那么当我在HTML文件中
考虑下面的API方法,它取自Shiro的接口,但也可能存在于其他库中: 是的,即使是现在,仍然有库使用原始类型,可能是为了保持Java 1.5之前的兼容性?! 如果我现在想将此方法与流或选项一起使用,如下所示: 我收到一条关于未经检查的转换和使用原始类型的警告,我更喜欢使用参数化类型。 日食: 类型安全:收集(Collector)方法属于原始类型Stream javac: 注意:GenericsT
例如,Angular 2内置的属性指令ngClass和ngStyle,可以在任何组件或元素上工作。
我们可以直接将一个字符串绑定到属性。这就像添加一个html属性一样。 View Example 在这里,由于我们使用表达式绑定到指令,我们需要在方括号中包装指令名称。当你想有一个函数放在适用的类名列表时,传入数组是很有用的。 View Example 在这里我们可以看到,由于对象的 和属性是true,这些classes将会生效,但由于是false,它不会生效。