2016-06-22 7 views
0

Ich versuche, auf nur einen Speicher zu filtern, gegeben die Store-ID, die in einem Dropdown ausgewählt wird.Verwenden von Filter auf angular ng-repeat

HTML:

<tbody data-ng-repeat="store in orderVm.Stores | filter :{store.id=orderVm.Stores.selectedStore.id}"> 

ich nicht, wie die Filter so eingestellt, dass es nur den einen Laden mit dem angegebenen ID zeigt.

Controller:

vm.Stores = json;// from file 
vm.Stores.selectedStore = { 
    id: vm.Stores[0].Id, 
    name: vm.Stores[0].MarketplaceName 
}; 

vm.Stores:

[ 
    { 
    "Id": 1, 
    "MarketplaceId": 1, 
    "MarketplaceName": "Etsy" 
    ] 
    }, 
    { 
    "Id": 2, 
    "MarketplaceId": 2, 
    "MarketplaceName": "Shopify" 
    } 
] 

Der Fehler I erhalten ist unerwartet% 2C% 20expecting% 20% 5B% 3A% 5D & p2 = p3 = 32 & orderVm .Stores% 20% 7CNaNilter% 20% 3A% 7Bstore.id% 3DorderVm.Stores.selectedStore.id% 7D & p4 = .id% 3DorderVm.Stores.selectedStore.id% 7D

+0

Sie sollten nicht auf einen Iterator in Ihrem Filter verweisen, also versuchen Sie: {Id = orderVm.Stores.selectedStore.id} Und beachten Sie, dass es Groß-und Kleinschreibung ist. –

+0

Der erste Parameter des Filters akzeptiert entweder 'string',' object' oder 'function', also sollte er syntaktisch '{Id: orderVm.Stores.selectedStore.id}' sein, beachten Sie das Gleichheitszeichen und den Doppelpunkt – kazenorin

+0

Dies funktionierte: Filter: {Id: orderVm.selectedStore.id}, aber ich weiß nicht warum. Insbesondere weiß ich nicht, warum Id groß geschrieben werden muss. – DaveC426913

Antwort

1

Einfache fi lter Ihre Daten von Wert:

<tbody data-ng-repeat="store in orderVm.Stores | filter:Vm.Stores.selectedStore.id"> 

erhält es Objekte mit Eigenschaften Wert Vm.Stores.selectedStore.id ist. Da name nicht eine Zahl (id) ist, können Sie diesen Filter dafür verwenden.

Um bestimmte Filter nach Wert von id:

<tbody data-ng-repeat="store in orderVm.Stores | filter:{Id:Vm.Stores.selectedStore.id}:true"> 

Syntax: filter:{propertyName:value}:true

true für die exakte Übereinstimmung vorhanden ist.

+0

Ich habe dies versucht: Filter: OrderVm.Stores.selectedStore.id aber es filtert nicht - es gibt mir alle Geschäfte. Zumindest bekomme ich keinen Fehler. – DaveC426913

+0

OK, dieser hat funktioniert: filter: {Id: orderVm.Stores.selectedStore.id}: true – DaveC426913

+0

Ich verstehe nicht, warum ich ID verwende, wenn ich eine ID angegeben habe Ist die ID vom Filter oder Repeater reserviert? – DaveC426913