Je regardais juste le projet todoMVC d'angularjs et j'ai découvert qu'il personnalisait un filtre dans le contrôleur
$scope.$watch('TC.location.path()',function (path) {
TC.Filters = {'/active':{completed: false},'/completed':{completed:true}}[path];
});
Après en vue
<li ng-repeat="todo in TC.todos | filter:TC.Filters track by $index" ng-class="{completed: todo.completed, editing: todo === TC.editedTodo}">
Mon problème est principalement que je ne comprends pas la façon dont est écrit le premier morceau de code
function (path) {
TC.Filters = {'/active':{completed: false},'/completed':{completed:true}}[path];
}
Dans cette méthode, après avoir passé le chemin, différents filtres sont sélectionnés en fonction du chemin.
Bien que la raison ait été donnée ci-dessus, je suppose que vous ne la comprenez pas très bien. Laissez-moi vous donner un document pour voir ce qu'est
$watch
Le document est ici.Ici, les changements dans le chemin sont surveillés. Lorsque le chemin change, les paramètres du filtre changent également. En fait, c'est le basculement entre les données complétées et actives