Если вам нужно, и вы хотите иметь только предложения ANDed, а ваши предложения - это простые проверки на равенство (как предполагает формулировка вашего вопроса) ... тогда сделайте ваш *ngIf="condition(item, conditions)"
Здесь conditions
будет быть переменной-членом класса, представляющей собой массив объектов вида {key: string, value: any}
, который вы бы построили в этом массиве вместо вашего строкового выражения, а condition
была бы функцией, которую вы определили в своем наборе текста, что-то вроде это:
condition(item, conditions) {
if(!item) return false;
if(!Array.isArray(conditions) || (conditions.length === 0)) return true;
for(let i = 0; i < conditions.length; i++) {
if(item[conditions[i].key] !== conditions[i].value) {
return false;
}
}
return true;
}
Я не вижу, как это работало бы; в регулярной иерархии существует единственная цепочка к корню, таким образом, это может сохранить путь (который является тем, что двоичный файл) к каждому узлу. Однако с несколькими родителями, это не возможно: даже при разделении матриархата и partiarchy у Вас все еще есть 1 родительский элемент, 2 бабушки, 4 прабабушки, и т.д. (даже не входящий в некоторые более "интересные" scanerios возможные, особенно с домашним скотом). Нет никакого единственного логического пути для кодирования, таким образом, нет: Я не думаю, что это может работать в Вашем случае.
Я рад быть исправленным, все же.
Принятие каждой овцы имеет одного штекерного родителя и одного розеточного родителя, и что никакие овцы не могут быть своим собственным родителем (ведущий к Застенчивому Временному Paradox), затем что относительно того, чтобы использовать два HierarchyIDs?
CREATE TABLE dbo.Sheep(
MotherHID hierarchyid NOT NULL,
FatherHID hierarchyid NOT NULL,
Name int NOT NULL
)
GO
ALTER TABLE dbo.Sheep
ADD CONSTRAINT PK_Sheep PRIMARY KEY CLUSTERED (
MotherHID,
FatherHID
)
GO
Путем создания их совместным PK Вы однозначно определили бы каждую овцу как продукт ее материнской иерархии, и это - отеческая иерархия.
Может быть некоторая свойственная проблема, скрывающаяся здесь, поэтому возобновить осторожно пару простых прототипов - но первоначально кажется, что она работала бы на Вас.