デフォルトで「createdAt」に等しいスコープ変数「$scope.searchType」があります。私の HTML には、スコープ変数の値を変更するオプションがあります。
<ul class="dropdown-menu" role="menu">
<li><a ng-click="searchType = 'Anything'">Anything</a></li>
<li><a ng-click="searchType = 'Payment'">Payment</a></li>
<li><a ng-click="searchType = 'Total'">Total</a></li>
<li><a ng-click="searchType = 'Tax'">Tax</a></li>
<li><a ng-click="searchType = 'Payment Method'">Payment Method</a></li>
</ul>
私のコントローラーには、変更をリッスンするための次のものがあります。
$scope.$watch('searchType', function(newValue) {
if(newValue == 'Payment') {
$scope.searchTypeFilter = 'id';
$scope.searchFiltered = true;
} else if(newValue == 'Total') {
$scope.searchTypeFilter = 'total';
$scope.searchFiltered = true;
} else if(newValue == 'Tax') {
$scope.searchTypeFilter = 'tax';
$scope.searchFiltered = true;
} else if(newValue == 'Payment Method') {
$scope.searchTypeFilter = 'paymentType';
$scope.searchFiltered = true;
} else {
$scope.searchTypeFilter = '';
$scope.searchFiltered = false;
$scope.search = '';
}
}, true);
何らかの理由で $scope.$watch が呼び出されません。以前のように、これがどのように機能しないのかわかりません。これは「$scope.searchType」宣言です:
$scope.sortType = 'createdAt';