我正在使用Ionic 2并试图在
上使用@Test
public void showFlagAndName(){
DetailsView mockView = mock(DetailsView.class);
DetailsPresenter presenter = new DetailsPresenter();
Country country = new Country("Italy", "italyFlag");
presenter.attachView(mockView);
presenter.showCountry(country);
verify(mockView, times(1)).showCountry("Italy");
verify(mockView, times(1)).setFlag("italyFlag");
}
getElementbyId
这样我就可以通过以下方式添加项目:
<ion-content padding>
<ion-list id="list"></ion-list>
</ion-content>
第一次完全正常,但是如果我退出页面并重新打开它,我会收到错误消息
无法在null
上读取属性appendChild
。我已经读过其他问题,他们说脚本不在底部。通过计算在Ionic中的数量,你根本不把脚本放在html中我不知道是什么原因造成的。
修改
我上传了文件here主要问题在于聊天详细信息,聊天详情是通过聊天打开的。
答案 0 :(得分:4)
你到底想要做什么?我认为你用旧的Jquery方式思考,但是Ionic在Angular2之上工作,所以事情以不同的方式完成。
我假设您要将新项目附加到列表中,这可以通过使用* ngFor和一组数据来完成。或者,如果要在特定条件下显示消息,可以使用* ngIf来完成此操作。 您应该尽量避免直接引用DOM,而是更新组件代码以更改视图中显示的数据。
我已创建此demo plunker只是为了向您展示如何以 Angular2方式执行这些操作。请让我知道预期的结果是什么,所以我可以相应地更新plunker。
组件代码:
@Component({
selector: 'page-home',
templateUrl: 'app/home.page.html'
})
export class HomePage {
private count: number;
public users: Array<string>;
public showMessage: boolean;
public message: string;
constructor() {
this.count = 1;
this.users = [];
this.showMessage = false;
this.message = 'This is a secret message!';
}
public addUser(): void {
this.users.push(`User ${this.count++}`);
}
public toggleMessage(): void {
this.showMessage = !this.showMessage;
}
}
查看代码:
<ion-header>
<ion-navbar>
<ion-title>HomePage</ion-title>
</ion-navbar>
</ion-header>
<ion-content padding>
<h2>Users</h2>
<p *ngIf="showMessage">{{ message }}</p>
<ion-list *ngFor="let user of users">
<ion-item>
<p>{{ user }}</p>
</ion-item>
</ion-list>
<button ion-button (click)="addUser()">Add a user</button>
<button ion-button (click)="toggleMessage()">Togle message</button>
</ion-content>