2016-06-14 10 views
0

私は、都市、職位、職種などの基準に基づいてジョブをフィルタリングできるプロジェクトに取り組んでいます。ユーザーがフィルタをクリックすると、検索結果はフィルタリングされますが、フィルタ自体もフィルタリングされます。Angular JS - オブジェクトの配列に別のオブジェクトのデータを配置する

これを行うには、フィルタされたジョブオブジェクトからフィルタの都市、レベル、カテゴリのリストを取得する予定です。 私の質問は、Angularでは、4番目のオブジェクト配列からのデータを使用して3つのオブジェクト配列を作成できますか?

マイジョブ配列($ scope.programs)は、次のような形式があります。

[ 
    { 
     title: "HR Analyst", 
     city: "Jacksonville", 
     state: "Florida", 
     country: "United States", 
     region: "North America", 
     level: "Full Time Analyst", 
     category: " Human Resources" 
    } 
] 

を、私はその後、フィルタとその可用性の名前を格納する3オブジェクトの配列を作成することを計画します。だから、$ scope.citiesは、次のようになります。

[ 
    { 
     name: "London", 
     available: "true", 
    }, 
    { 
     name: "Sydney", 
     available: "false", 
    }, 
] 
+1

あなたは、1つのオブジェクト配列を入力として受け取り、3つの新しい配列を出力として返す関数を書くように頼んでいますか? "4番目のオブジェクト配列のデータを使用して3つのオブジェクト配列を作成する"ことができるかどうかという質問があります。なぜこれは不可能だと思いますか?あなたが望む効果を達成するためにこれまでに何を試みましたか?なぜそれは機能しませんでしたか? –

+0

フロントエンドで計算を行うのに最適な場所はありますか? –

+0

こんにちはダン、私は可能だと思います。私はそれについて行く方法はわからないので、私は助けを求める! scope.programs内の項目をループするためにforEachループを使用する必要があることはわかっていますが、他のオブジェクト配列を作成し、program.cityをプログラム配列(たとえば)からcity.nameに割り当てる方法はわかりません都市の配列。 –

答えて

1

私は私の配列を移入するために管理:ダン・フォーブスと話した後、私は私が使用して私の都市、カテゴリとレベルを制限する必要があると考えていますが

$scope.getFilters = function(){ 
    angular.forEach($scope.programs, function(program) { 
     $scope.filterCities.push({ 
      name: program.city, 
      available: true 
     }); 
     $scope.filterCategories.push({ 
      name: program.category, 
      available: true 
     }); 
     $scope.filterLevels.push({ 
      name: program.level, 
      available: true 
     }); 
    }); 

    console.log($scope.filterCities); 
    console.log($scope.filterCategories); 
    console.log($scope.filterLevels); 

}; 

カスタムアングルフィルタではなく、配列を作成します。私はこれが誰かを助けることを望む。

関連する問題