我创建了许多变量,并在相应的template / html中对其进行访问。默认情况下,所有变量都是公共的。这些公共变量是有问题的,所以我想将它们转换为私有变量。但是,一旦我将这些私有变量转换为公共变量,就会收到私有成员无法在类外使用的错误。从概念上讲,这是绝对正确的。但是,在组件中,template / html和* .ts文件属于同一事物,如果我错了,请纠正我。那么,为什么不能将ts文件中创建的私有变量用于相应的template / html?
如果ts文件和html / template文件是分开的,那么如何在html中访问私有变量?
我正在使用打字稿。
test.component.ts
public myVar = 'iCreatedThisVariable';
to
private myVar = 'iCreatedThisVariable';
test.component.html
<p>{{myVar}}</p>
如果ts文件和html属于同一类,则我应该能够在html中使用私有变量。
如果它们不同,那么如何使用angular2 +在html中使用私有变量?
答案 0 :(得分:0)
Angular中的AoT编译器要求您要在模板中使用公共成员时,必须在控制器类中具有公共成员。因为当<asp:TemplateField HeaderText="Status"
ItemStyle-CssClass="text-center"
HeaderStyle-CssClass="text-center">
<ItemTemplate>
<asp:CheckBox ID="lblmajor"
runat="server"
Checked='<%# (bool)Eval("IsApproved")==true?true:false %>'
ForeColor='<%# (bool)Eval("IsApproved")==true?System.Drawing.Color.Green:System.Drawing.Color.Red %>'>
</asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
代码向下编译为public/private
时,TypeScript
概念不存在。
在进行组件组合和/或封装时,应该使用访问修饰符,而不是在进行模板和控制器时。
如果要封装控制器变量,但仍要访问或设置某些数据,则应创建相应的方法,例如getters / setters。