2017-07-31 10 views
0

このコードでは、ページ読み込み中にfilltable()関数が起動しないことがあります。 私はwebserviceでバックエンドを行っています。ページの読み込み時に角度関数を実行するにはどうすればよいですか?


 
    var app = angular.module("myApp", []); 
 
    app.controller("myCntrl", function ($scope, $http) { 
 
     $scope.fillTable(); 
 
     $scope.fillTable = function() { 
 
      $scope.Name= ""; 
 
      var httpreq = { 
 
       method: 'POST', 
 
       url: 'http://localhost:61292/PPAPI.asmx/GetTables', 
 
       headers: { 
 
        'Content-Type': 'application/json; charset=utf-8', 
 
        'dataType': 'json' 
 
       }, 
 
       data: {} 
 
      } 
 
      $http(httpreq).success(function (response) { 
 
       $scope.TableList= response.d; 
 
      }) 
 
     }; 
 
     $scope.fillTable(); 
 
    }); 
 
</script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.11/angular.min.js"></script>

+0

あなたはNG-コントローラが含まれるのですか? –

+0

はい、あります。

+0

どのような基準で、塗りつぶしテーブルが実行されないと判断していますか?実際には、投稿したコードに基づいて2回実行する必要があります。 –

答えて

-1

あなたが角度のバージョン1.2を使用しているので、あなたのintialiationのコードを実行するngInit機能を使用してください。バージョン1.6では、コントローラの中で関数呼び出し$ onInit()を作成するだけです。

<myControl ng-init="fillTable()"></myControl> 
+0

ng-initは最後の手段としてのみ使用されます。 –

+0

@MikeFeltman実際には、 'ng-init'の代わりにコントローラを使う方が良いでしょう。 – Zooly

0

LT56回答が動作しますが、データをng-initで初期化することは推奨されていません。 AngularJS Documentationから

このディレクティブは、テンプレートにロジックの不要な量を追加するために悪用されることができます。以下のデモで見られるように、ngRepeatの特殊なプロパティをエイリアスするなど、ngInitを適切に使用するのはほんのわずかです。サーバー側のスクリプトを使用してデータを注入するためのものです。これらのほとんどの場合のほかに、ngInitではなくコントローラを使用してスコープの値を初期化する必要があります。

あなたがすでに行っているようにJSファイルの最後に呼び出すinit関数を使用することをお勧めします。

問題については、動作しているはずです。コンソールデベロッパーがエラーを表示しているかどうかを確認してください。 .jsファイルを含めるのを忘れている可能性があります。

0

コードに基づいて正常に動作しています。いくつかのタイプミスがありますが、私は以下のコードで修正しました。 HTMLで

var myApp = angular.module('myApp',[]); 
 

 
myApp.controller('MyCtrl', function($scope) { 
 
     $scope.fillTable = function() { 
 
      console.log("call"); 
 
     }; 
 
     $scope.fillTable(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="MyCtrl"> 
 
</div>

関連する問題