0
我想通过DebugElements循环来确保元素描述的对象具有某些属性。例如,我可能希望确保显示屏仅显示那些今天有预约的患者,而不显示可用患者的完整列表。如何从Angular2 DebugElement访问范围数据?
如何从调试元素访问范围数据?
例如:
注:在下面的代码,所述page
可变包频繁调试元件的搜索到一个单一的类。在这种情况下,它为同一个列表组件的两个实现提供调试元素,并且每个列表组件根据与此问题无关的标准显示不同的患者列表。
it("lists zero patients from other staff members that the staff member who is logged in",()=>{
var element : DebugElement, list : any;
var user : string = component.credentials.username;
var notMyPatientCount : number = 0;
for (list of [page.primaryPatients, page.patientBacklog]){
for(element of list){
var patient = /* I need something to put here to extract the PatientSummary object that is displayed in this element */;
}
}
expect(notMyPatientCount).toBe(0, "When filtered, the display only holds patients assigned to the current user.");
});
这只是一个观察不是一个答案,但似乎这个逻辑在服务和为测试属于它属于该服务的测试套件。我真的很困惑,因为我看到很多像这样的测试,我不明白他们的目的。我意识到组件正在过滤数据,但也许该过滤器应该在服务中...我真的不知道 –
我的原始实现使用管道服务来完成这项工作,但管道导致无效区域引用的错误或某事像那样。我试图解决这个问题几天,然后发现一个像上面的实现,并意识到我可以绕过导致我这么多麻烦的管道。 –
我明白这是有道理的。 Pipe并不是一项真正的服务,它更多的是放入所有视图命名空间的功能。我在想更多,你会想要注入一个常规的服务,并使用它,因为服务比组件更容易测试。感谢您的解释。 –