В этом случае вы должны иметь возможность использовать директиву *ngIf
, предоставляемую самим Angular, вот так.
// page.component.html
<nb-alert status="success" closable (close)="onClose()" *ngIf="alertIsOpen">
You have been successfully authenticated!
</nb-alert>
alertIsOpen = true;
// page.component.ts
onClose() {
// fires after each click on close button:
console.log('close button was clicked');
this.alertIsOpen = false;
}
Другой подход, который также будет работать для нескольких предупреждений, заключается в том, чтобы ваши предупреждения существовали в массиве.
// page.component.html
<ng-container *ngFor="alert of alerts">
<nb-alert status="{{alert.status}}" closable (close)="onClose(alert)">
{{alert.text}}
</nb-alert>
</ng-container>
alerts = [
{
status: "success",
text: "You have been successfully authenticated!"
},
{
status: "danger",
text: "Failed to authenticate!"
}
]
// page.component.ts
onClose(alert) {
// fires after each click on close button:
console.log('close button was clicked');
this.alerts.splice(this.alerts.indexOf(alert), 1);
}
Преимущество этих подходов состоит в том, что вы не сохраняете оповещение, существующее в вашей DOM
Просто удалите косую черту после Data
и добавьте корень:
<xsl:variable name="myVarA" select="/root/DataSet/Data[@Value1='2']/@Value2"/>
Существует две проблемы с Вашим xpath - сначала необходимо удалить дочерний селектор из после Data
как упомянутый phihag. Также Вы забыли включать root
в свой xpath. Вот то, что Вы хотите сделать:
select="/root/DataSet/Data[@Value1='2']/@Value2"
Попробуйте
xsl:variable name="myVarA" select="//DataSet/Data[@Value1='2']/@Value2" />
«//» будет искать DataSet на любой глубине
Примечание: использованием//в начале xpath является немного ЦП intensitve - это будет искать каждый узел соответствие. Используя более определенный путь, такой как/root/DataSet создаст более быстрый запрос.
Я бы сделал это, создав переменную, которая будет указывать на узлы, которые имеют правильное значение в Value1, а затем сослаться на t
<xsl:variable name="myVarANode" select="root//DataSet/Data[@Value1='2']" />
<xsl:value-of select="$myVarANode/@Value2"/>
Ответы всех остальных тоже правильные - более правильные на самом деле, так как я не не замечайте лишнюю косую черту в вашем XPATH, которая может испортить ситуацию. Тем не менее, это также будет работать и может работать для разных целей, поэтому сохраните этот метод в своем наборе инструментов.