我在父母和子女控制器之间进行通信时出现问题, 情况如下所示。在父控制器中,我有:
public $onInit = () => {
this.swSubviewInfo.resolved.then((response: IDashboardResponseData) => {
this.setGroupId(response.opid);
this.updateTitle(response.objectName);
});
}
private setGroupId(groupOpid: string) {
this.$scope.groupId = parseInt(groupOpid.split("_")[1], 10);
}
我在子控制器的$ onInit中需要这个值,所以子控制器的启动应该等待在父控制器中解析函数。
如何防止读取未定义的情况?谢谢你的回答。
答案 0 :(得分:0)
在子控制器的$watch
中设置$onInit()
,以便在执行任务之前等待scope属性具有有效值。
public $onInit = () => {
var stopWatch = $scope.$watch('groupId', (newValue) => {
if (newValue == "something valid") {
//Do something with groupId
stopWatch();
}
});
}