我正在使用Nativescript和Angular开发移动应用程序,但是在创建 headerView 并添加到 CFAlertDialog 内时遇到了问题(我正在使用插件 nativescript-cfalert-dialog )。
我创建了一项服务,以将其注入应用程序中的多个组件,就像这样
import * as application from 'tns-core-modules/application'
@Injectable()
export class PlayerDialogService {
...
constructor() {
const context = application.android.context as android.content.Context;
this.generateAndroidNativeView(context)
}
private generateAndroidNativeView(context: android.content.Context) {
this.usernameLabel = new android.widget.TextView(context)
this.usernameLabel.setTextSize(20)
this.fullNameLabel = new android.widget.TextView(context)
this.fullNameLabel.setTextSize(16)
this.playerImage = new android.widget.ImageView(context)
this.playerImage.setMaxWidth(48)
this.playerImage.setMaxHeight(48)
this.textStackLayout = new android.widget.LinearLayout(context)
this.textStackLayout.addView(this.usernameLabel)
this.textStackLayout.addView(this.fullNameLabel)
this.stackLayout = new android.widget.LinearLayout(context)
this.stackLayout.addView(this.playerImage)
this.stackLayout.addView(this.textStackLayout)
}
}
事实是,每次加载对话框时(我打开一个注入了PlayerDialogService
的组件/视图),都会收到此错误:
JS: ERROR TypeError: Cannot read property 'usernameLabel' of undefined
恐怕我没有传递正确的Context(尽管它不是一个空对象,也不是一个未定义的对象),但其中包含一个构造函数。那...我想念什么?