如何在页面加载时执行角度函数?

时间:2017-07-31 20:03:17

标签: angularjs

此代码的一些问题,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>

3 个答案:

答案 0 :(得分:0)

LT56答案有效,但不推荐使用ng-init初始化数据。

来自AngularJS Documentation

  

可以滥用此指令将不必要的逻辑量添加到模板中。 ngInit只有少数适​​当的用途,例如用于别名ngRepeat的特殊属性,如下面的演示所示;并通过服务器端脚本注入数据。除了这几种情况,您应该使用控制器而不是ngInit来初始化作用域上的值。

我建议你使用一个init函数,你将在JS文件的末尾调用,因为你已经在做了。

关于你的问题,它应该有效。请检查控制台开发人员是否显示任何错误。您可能忘记包含.js文件。

答案 1 :(得分:0)

根据您的代码工作正常。我在下面的代码中修改了一些拼写错误。

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

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

答案 2 :(得分:-1)

由于您使用的是角度版本1.2,因此请使用ngInit函数执行初始化代码。在1.6版本中,只需在控制器内创建一个函数调用$ onInit()。

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