現在、配列スタイルのクエリパラメータを使用して項目をフィルタリングするAPIを使用していますが、これをどのようにAngularで動作させるかはわかりません。配列スタイルのクエリパラメータをAngularjsのリソースに渡す
私の例では、ドロップダウンがあり、それは選択のngモデルをとり、これをparamersのリストに適用し、リストをフィルタリングするメソッドを起動します。通常は、通常のキー値を扱うときは単純です。以下
<div class="form-group pull-right">
<select id="plat-sel" name="plat-sel" class="form-control" ng-model="paramers.filter" ng-change="refresh()">
<option value="" disabled selected>Filter by Platform</option>
<option value="1183">Xbox One</option>
<option value="1184">PlayStation 4</option>
<option value="1182">PC</option>
<option value="1188">Wii U</option>
<option value="1186">Xbox 360</option>
<option value="1185">PlayStation 3</option>
</select>
</div>
工場:私の見解はそうのように見えますがそう
$scope.paramers = {
include: 'playing',
sort: '-id'
};
$scope.refresh = function() {
LFGFactory.query($scope.paramers, function success (response) {
$scope.loading = true;
var data = response.data;
if (data.length >= 1) {
$scope.rowList = data;
$scope.loading = false;
} else {
$scope.loading = false;
}
},
function err (data) {
console.log(data);
});
};
のようなルックスアップ
example.com/api/list?filter[number]=1
私の現在のセット:しかし、この場合、URLは次のようなものを求めて
.factory('LFGFactory', function($resource) {
var base = 'http://example.com/api/v1.0/';
return $resource(base +'lfg', {},
{
update: {
method: 'PUT',
isArray: true
},
delete: {
method: 'DELETE',
isArray: true
},
query: {
method: 'GET',
isArray: false
}
}
);
})
通常は、フィルタを追加するだけであれば、これは問題ありません。既存の$ scope.paramersオブジェクトに '1'を追加することです。しかし、私は何とかfilter [number] = 1を代わりに追加する必要があります。 ng-modelと私の現在の設定でこれについてどうやって行くのですか?
指定してみてください[ '$ httpParamSerializerJQLike:あなたがあなたの
select
要素を変更
を使用しているngParamSerializer
を'](https://docs.angularjs.o '$ http' /' $ resource' 'paramSerializer'プロパティの中の' 'rg/api/ng/service/$ httpParamSerializerJQLike ')を参照してください。 – Phil
' LFGFactory.query 'を使用する必要はありますか? urlパラメータに特別な必要がある場合は、ただちにurlとパラメータを構築する方が簡単です。 –