2017-06-01 10 views
0

私がやっているのは、検索機能を作ることです。私は、チェックボックスを使用して複数のオプションを持ち、各チェックボックスの値に応じてコントローラー内の関数を呼び出す必要があります。詳細には私が今までやっているドロップダウンメニューである:クリックしたチェックボックスに応じて変数名の関数を呼び出す

<input type="text" placeholder="Search Keyword..." ng-model="searchKeyword"> 
<select ng-model="selectedProperty"> 
    <option value="usersUsername">Users: Username</option> 
    <option value="accountsName">Accounts: Name</option> 
</select> 
<button type="submit" ng-click="search()">Search</button> 

とコントローラに私が選択されたプロパティをチェックしていると私は、だから、私は何

$scope.search = function() { 
    switch ($scope.selectedProperty) { 
    case 'usersUsername': 
     searchByUsersUsername($scope.searchKeyword) 
     break; 
    case 'accountsName': 
     searchByAccountsName($scope.searchKeyword) 
     break; 
    } 
}; 

対応する関数を呼び出していますドロップダウンメニューを複数の選択されたチェックボックスに変更することです。たとえば、ユーザーsearch-usernamesとaccounts-nameの両方がコントローラsearchByUsersUsernameAccountsName($ scope.searchKeyword)で関数を呼び出すように選択されている場合です。

答えて

0

チェックボックスは、チェックボックスの値に境界を定めた属性を持つコントローラスコープのオブジェクトの配列に表示できます。検索機能の内部では、チェックボックスにバインドされている各オブジェクトの属性値をチェックします。

ここに私が気づいているコード例があります。コントローラで

HTMLファイルで今すぐ
$scope.checkboxes = [ 
{ checked: false, value: "Username", url_key: "searchAccountsName" }, 
{ checked: false, value: "Accounts Name", url_key: "searchUsersU‌​sername" } ]; 

、コントローラ

$scope.search = function() { 
    var urlParams = ""; 
for (var i = 0; i < $scope.checkboxes.length; i++){ 
    if($scope.checkboxes[i].checked){ 
     urlParams = urlParams + $scope.checkboxes[i].url_key + '=true&' 
    } 
} 

var urlParams = urlParams + "searchK‌​eyword="+ $scope.searchKeyword; 
searchFn(urlParams); 
} 

と中でNGリピート検索機能で今すぐ

<div class="ui fluid action large input"> 
    <input type="text" placeholder="Search Keyword..." ng-model="searchKeyword"> 
    <div class="checkboxes"> 
     <div ng-repeat="checkbox in checkboxes"> 
      <input type="checkbox" ng-model="checkbox.checked"/> {{checkbox.value}} 
     </div> 
    </div> 
</div> 

を通じ、これらのチェックボックスをレンダリングsearchFnの場合は、この後にurlParams文字列を追加することができますurlの疑問符。

+0

お返事ありがとうございます。私が言及した上記は一例であった。私は特定の数のチェックボックスを持っていません。だから、私たちは3つ、4つ以上のチェックボックスを持っていると言うことができます私は4のうちの2つがクリックされているかどうかをチェックするつもりですか? – makou

+0

Hmm。それは面白いシナリオです。チェックボックスごとに「チェックされた」値に応じて複数の関数を呼び出すことができると思いますか? –

+0

私はそれが可能になると思うが、それが私の場合に合うかどうかわからない。私は検索機能を持つサービスを持っているため、GET呼び出しを行う必要のある特定のURIは/ path-to-service/searchですか?searchAccountsName = true&searchUsersUsername = true&searchKeyword = test ユーザーがどのオプションをチェックしているのかを「マーク」したい場合は – makou

関連する問題