0

ページロード時にangularjs関数(DeptSpecific)を呼び出し、IDをハードコードされたパラメータとして渡したいとします。そして、私はng-init = "DeptSpecific( '1')"を経由しています。私はangularjsを学んでいます。私はどのように関数を呼び出して、ページロード時に何かクリックや何もせずにパラメータを渡す方法を提案してください。あなたがなぜng-initを使用したのか考えているのですが、これは間違っているかもしれませんが、関数がうまく呼び出されていない特定の理由はありませんが、デバッガ(f12)では$ scope.siが未定義ID。MVC 4とangularjsを使用していますが、実際にはページロード時に角度js関数を呼び出したい

$scope.DeptSpecific = function (ID) { 

    var BelongsToThisDepartment = []; 
    $http.get('/Department/getDept').success(function (response) { 
     $scope.departments = $scope.$eval(response); 
    }); 
    angular.forEach($scope.departments, function (item1) { 
     if (item1.ID == ID) { 
      BelongsToThisDepartment.push(item1); 
     } 
    }) 

    $scope.s = $scope.$eval(angular.toJson(BelongsToThisDepartment)); 

    // console.log(JSON.stringify($scope.s)); 

} 




<div ng-app="MyApp"> 
    <div ng-controller="MyController"> 
     <table class="tableData" border="0" cellspacing="0" cellpadding="0" ng-init="DeptSpecific('1')"> 
      <thead> 
      <tr> 
       <th></th> 
       <th>ID</th> 
       <th>NAME</th> 
       <th>LOCATION</th> 
      </tr> 
      </thead> 
      <tbody ng-repeat="O in s"> 
       <tr ng-class-even="'even'" ng-class-odd="'odd'"> 
       <td class="CX" ng-click="student(O.ID)"><span>+</span></td> 
        <td>{{O.ID}}</td> 
        <td>{{O.Name}}</td> 
        <td>{{O.Location}}</td> 
       </tr> 
+0

ここで、MyControllerのコードはありますか?それはあなたがMyControllerに$スコープを挿入しないという縫い目です。 – Merlin

+0

いいえ...私はこの記事で完全なコードをコピー&ペーストすることができませんでした。 –

+0

コントローラのコードを追加してください – Merlin

答えて

0

NG-INITを使用して、あなたのコードを見てみると結構ですが、あなたの$scope.departments.success方法の外からアクセスできない場合があります。

angular.module('MyApp') 
.controller('MyController', ['$scope', function($scope) { 
    $scope.DeptSpecific = function (ID) { 
     var BelongsToThisDepartment = []; 
     $http.get('/Department/getDept') 
     .success(function (response) { 
      $scope.departments = $scope.$eval(response); 

      angular.forEach($scope.departments, function (item1) { 
      if (item1.ID == ID) { 
       BelongsToThisDepartment.push(item1); 
      } 
      }) 
      $scope.s = $scope.$eval(angular.toJson(BelongsToThisDepartment)); 
      console.log($scope.s); 
     }); 
    } 
}]); 

は今、それはあなたのために働く場合がありますが、また、その.success$scope.s外にアクセスできるようにしたいです。

あなたは関数を書いて、.successに値を渡してonSucessを返し、あなたがしたいことをすることができます。

.success(function(response) { 
    callAFunction(response); 
}  
関連する問題