如何在页面加载时自动获取数据?

时间:2017-01-18 04:14:14

标签: angularjs

我正在尝试使用php从数据库中获取数据,并且该数据将在我的网页上显示。

formApp.controller('getsettings', function($scope,$http){
      $scope.formData = {};

      $scope.getsettings = function() {
            var allData={'uid': uid}
        $http({
              method  : 'POST',
              url     : 'get_settings.php',
              data : allData,
              headers : { 'Content-Type': 'application/x-www-form-urlencoded' }  

          })
              .success(function(data) {

                  if (!data.success) {
                       $scope.fname = data.fname;
                      $scope.lname = data.lname;
                      $scope.mobile = data.mobile;

                  }else{
                      $scope.fname = '';
                      $scope.lname = '';
                      $scope.mobile = '';

                    }
              });

      };

    })

问题是上面的代码没有解雇。我检查了网络选项卡,没有任何事件 我怎样才能解雇这个事件。我有什么建议我做错了吗?

我还有一个问题是我见过的很多地方人们正在使用GET而不是POST。那是为什么?

2 个答案:

答案 0 :(得分:2)

您已经实现了$scope.getsettings功能,但您没有在任何地方调用它。

您可以在实施后立即使用$scope.getsettings()调用/调用此函数。控制器在浏览器中加载后,将调用此函数。

修改

回应您的评论 - 更正后的JS代码:

formApp.controller('getsettings', function($scope,$http){
  $scope.formData = {};

  $scope.getsettings = function() {
    var allData={'uid': uid}
    $http({
      method  : 'POST',
      url     : 'get_settings.php',
      data : allData,
      headers : { 'Content-Type': 'application/x-www-form-urlencoded' }  

    })
      .success(function(data) {

      if (!data.success) {
        $scope.fname = data.fname;
        $scope.lname = data.lname;
        $scope.mobile = data.mobile;

      }else{
        $scope.fname = '';
        $scope.lname = '';
        $scope.mobile = '';

      }
    });

  };

  // now call/invoke function $scope.getsettings
  $scope.getsettings();

});

答案 1 :(得分:1)

问题是你没有调用$scope.getSettings函数。你刚刚创建了它。您可以通过$scope.greetings()来呼叫它。或者,如果您想在视图中使用它,那么您可以执行以下操作:<button ng-click="getSettings()">Get Setting</button>