2017-02-09 2 views
0

Я создал функцию на мой контроллер в angularjs, которые выглядят любит этовызов функции на PageLoad angularjs

$scope.pload = function() { 
      $http.get('/WebServices/manageuser.asmx/showdatamanageuser', { 
      }).then(function (response) { 
       $scope.getdata = response.data; 
       console.log($scope.getdata); 
      }); 
     } 

и я хочу, чтобы вызвать эту функцию после вставки, удаления и загрузки страницы, поэтому я назвал функцию как это

<script type="text/javascript"> 
var app = angular.module("myApp", ["ngStorage"]); 
app.controller("myCtrl", function ($scope, $http, $interval, $localStorage, $sessionStorage, $window) { 
    var filename = undefined; 
    var file = undefined; 
    var filepath = undefined; 

    //showing table 

    $scope.pload(); 

ошибка я получаю

TypeError: $scope.pload is not a function 
    at new <anonymous> (VM190 ManageUser:427) 
    at Object.invoke (angular.js:4842) 
    at R.instance (angular.js:10695) 
    at n (angular.js:9572) 
    at g (angular.js:8881) 
    at angular.js:8746 
    at angular.js:1843 
    at m.$eval (angular.js:17972) 
    at m.$apply (angular.js:18072) 
    at angular.js:1841 

, что здесь не так?

+0

Где вы «вызываете» функцию? – Jax

+1

Хорошо, что я вижу в вашем ctrl, похоже, вы вызываете функцию до ее определения. Вызов функции должен быть после определения функции – Jax

ответ

1

Вам нужно вызвать функцию после ее определения не раньше, как это:

$scope.pload = function() { 
     $http.get('/WebServices/manageuser.asmx/showdatamanageuser', { 
     }).then(function (response) { 
      $scope.getdata = response.data; 
      console.log($scope.getdata); 
     }); 
    } 

$scope.pload(); 
1

Отсутствующие объявить $ объем в angular.module. Пример:

angular.module('Appcontrollers', []).controller('LoginController', ['$rootScope', '$scope', '$http', function ($rootScope, $scope, $http,) {}