2016-07-19 7 views
0

を対象とする場合のフィルタリング、HTMLはAngularJS - 私はangularJSとの単純なフィルタを内蔵している別のページに

<a class="filterbutton" ng-click="filters.grade = '7'">7 Grade</a> 
<a class="filterbutton" ng-click="filters.grade = '6'">6 Grade</a> 
<a class="filterbutton" ng-click="filters.grade = ''">X Clear Filters</a> 

<ul> 
    <li ng-repeat="name in names | filter:filters">{{name.student}}, {{name.grade}} grade</li> 
</ul> 

とコントローラのようなものです:

var app = angular.module('myApp', []); 
app.controller('myCtrl', function($scope) { 

$scope.filters = { }; 

$scope.names = [{ 
"student": "Jimmy", "grade":7 
}, { 
"student": "Johny", "grade":7 
}, { 
"student": "Little Joe", "grade":6 
}]; 
}); 

予想通り、この作品。しかし、私がしたいのは、フィルタの1つをチェックして、同じコントローラで別のページにジャンプできるようにすることです。ロードすると、2番目のページはすでにフィルタされています。たとえば、「別のページで7段階でフィルタリング」をクリックすると、anotherpage.htmlにジャンプし、出力が既にフィルタリングされます。

私はmade a plunkr hereを意味しています。前もって感謝します!

+0

'ng- view 'ディレクティブを作成してから、コントローラがルート値のパラメータ、すなわち選択されたフィルタを取得し、それを '$ scope.filters'に割り当てます。 –

答えて

1

また、あなたはこの単純なsolutionを試すことができます。

HTMLHREF属性にフィルタパラメータを追加します):

<a class="filterbutton" href="anotherpage.html?filter=7">Filter by 7 Grade in Another Page</a> 
<a class="filterbutton" href="anotherpage.html?filter=6">Filter by 6 Grade in Another Page</a> 

Javascriptを(URLからそれらを取得し、それを適用します)

app.controller('myCtrl', function($scope) { 

    $scope.filters = { grade : window.location.search.replace('?filter=','') }; 

    $scope.names = [{ 
    "student": "Jimmy", "grade":7 
    }, { 
    "student": "Johny", "grade":7 
    }, { 
    "student": "Little Joe", "grade":6 
    }]; 

}); 
+0

鮮やかな、まさに私が探していた(私は2つの別々のページを持っていたかったので)。ありがとう! – Joe82

関連する問題