2017-04-24 13 views
0

私はプロジェクトに取り組んでおり、AngularJsを使ってドロップダウンメニューを作成しようとしています。しかし、私は選択するメニュー上の雇用情報を得ることができません。コードの詳細が必要な場合は、追加することができます。それが定義されています前に、ここでAngularJS - ngRepeatを使用したドロップダウンメニュー

image of dropdownmenu

Delete.html、あなたがgetEmployees()を呼び出している

 <div class="dropdown"> 
     <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="drop"> 
      {{selectedItem}} 
      <span class="caret"></span> 
     </button> 
     <ul class="dropdown-menu" aria-labelledby="dropdownMenu1"> 
      <li ng-repeat="a in emps"> 
       <a ng-click="dropboxitemselected(a)">{{a.Id}}</a> 
      </li> 
     </ul> 
    </div> 

Demo.js

MyApp.controller("DeleteController", function ($scope, EmpApi) { 
    $scope.selectedItem = "Select Employee"; 
    $scope.isDeleteItemVisible = false; 
    getEmployees(); 
    function getEmployees() { 
     EmpApi.getEmployees().then(function (response) { 
      $scope.emps = emps; 
     }) 
     .catch(function (error) { 
      $scope.status = 'Unable to load emp data:' + error.message; 
     }) 
    }; 
    $scope.dropboxitemselected = function (item) { 
     $scope.selectedItem = item.Id; 
     $scope.name = item.Name; 
     $scope.age = item.Age; 
     $scope.sal = item.Salary; 
     $scope.empid = item.Id; 
     $scope.isDeleteItemVisible = true; 
    }; 
    $scope.DeleteEmp = function() { 
     var empToDelete = { 
      'Id': $scope.empid 
     }; 
     EmpApi.DeleteEmployee(empToDelete) 
       .then(function (response) { 
        alert("user deleted"); 
        $scope.name = undefined; 
        $scope.age = undefined; 
        $scope.sal = undefined; 
        $scope.empid = undefined; 
        $scope.selectedItem = "Select Employee"; 
        $scope.isDeleteItemVisible = false; 
        getEmployees(); 
       }) 
      .catch(function (response) { 
       alert("error in deleting"); 
      }); 
    } 
}); 
+1

これが問題の一部ですが、あなたの 'getEmployees'機能で、あなたは'代入しているかどうかわからない$ scope.emps = emps'を呼び出していますが、 '.then'コールバック関数では' emps'をパラメータとして渡していません。あなたは '応答'を渡しています。 – Andrew

答えて

0

まずエラーです。 関数が定義された後に行を追加します。より明確にするために、コントローラー定義の最後の行として追加することをお勧めします。

$scope.emps = emps;のempsが定義されていない場合、2番目のエラーはEmpApi.getEmployees()と表示されます。 設定し、あなたのimplmenetationに応じて、$scope.emps = responseまたは$scope.emps = response.data

コントローラー:

MyApp.controller("DeleteController", function ($scope, EmpApi) { 
    $scope.selectedItem = "Select Employee"; 
    $scope.isDeleteItemVisible = false; 

    function getEmployees() { 
     EmpApi.getEmployees().then(function (response) { 
      $scope.emps = response; 
     }) 
     .catch(function (error) { 
      $scope.status = 'Unable to load emp data:' + error.message; 
     }) 
    }; 

    $scope.dropboxitemselected = function (item) { 
     $scope.selectedItem = item.Id; 
     $scope.name = item.Name; 
     $scope.age = item.Age; 
     $scope.sal = item.Salary; 
     $scope.empid = item.Id; 
     $scope.isDeleteItemVisible = true; 
    }; 
    $scope.DeleteEmp = function() { 
     var empToDelete = { 
      'Id': $scope.empid 
     }; 
     EmpApi.DeleteEmployee(empToDelete) 
       .then(function (response) { 
        alert("user deleted"); 
        $scope.name = undefined; 
        $scope.age = undefined; 
        $scope.sal = undefined; 
        $scope.empid = undefined; 
        $scope.selectedItem = "Select Employee"; 
        $scope.isDeleteItemVisible = false; 
        getEmployees(); 
       }) 
      .catch(function (response) { 
       alert("error in deleting"); 
      }); 

     //Init 
     getEmployees(); 
    } 
関連する問題