当我在我的模板中使用它时:
<select [(ngModel)]="selectedCompany" class="form-control">
<option *ngFor="let company of companies" [ngValue]="company">{{company.Name}}</option>
</select>
{{selectedCompany}}
{{selectedCompany}}
的值为[object Object]
。但是,当我尝试Name
selectedCompany
这样的{{selectedCompany.Name}}
属性时:
{{company.Name}}
我收到以下错误:
EXCEPTION:未捕获(在承诺中):错误:./ HomeComponent类中的错误HomeComponent - 内联模板:60:10导致:无法读取未定义的属性“名称”
我想弄清楚为什么我会收到这个错误。我认为该属性存在,因为public class DirectoryListingPerfTest implements FileFilter {
private final SortedSet<File> _dirs = new TreeSet<>();
@SuppressWarnings("cast")
@Override
public boolean accept( File pathname ) {
if( pathname instanceof File ) {
_dirs.add( pathname );
}
else {
System.err.println( pathname.getClass());
}
return false;
}
static native void find( String path, FileFilter listener );
public static void main( String[] args ) {
System.loadLibrary( "fs_DirectoryListingPerfTest" );
final DirectoryListingPerfTest ff = new DirectoryListingPerfTest();
long atStart, elapsed;
atStart = System.nanoTime();
find( "/usr", ff );
elapsed = System.nanoTime() - atStart;
System.err.printf( "native(1): %,9.2f ms\n", elapsed / 1.0E+06 );
atStart = System.nanoTime();
find( "/usr", ff );
elapsed = System.nanoTime() - atStart;
System.err.printf( "native(2): %,9.2f ms\n", elapsed / 1.0E+06 );
}
}
有效。
答案 0 :(得分:1)
那是因为在模板渲染时没有定义selectedCompany
。你有两个解决方案:
使用安全导航操作员(?
)“保护”您的模板,直到selectedCompany
填充数据:
{{selectedCompany?.Name}}
在组件中初始化selectedCompany
变量:
selectedCompany = {};
其中任何一个都可以解决问题。