角色脚本在页面加载后执行(触发)

时间:2017-02-03 02:06:02

标签: javascript angularjs

以下是代码:

<html>
    <head>
        <script type='text/javascript'>
            var myAppModule = angular.module('myApp', []);

            myAppModule.factory('studentFactory', function (){
                // The whole factory goes here.
            });

            myAppModule.controller('studentsController', ['$scope', 'studentFactory', function ($scope, studentFactory){
                $scope.students = [];
                studentFactory.getStudents(function (data){
                    $scope.students = data;
                });
                studentFactory.removeStudent(function (data){
                    alert('test');
                    $scope.students = data;
                });
            }])
       </script>
</head>
<body ng-app='myApp'>
    ...
</body>
</html>

页面加载时会触发alert('test')。我该如何解决?请不要在代码中解决问题,我只是在努力。

以下是Plunker中的代码:https://plnkr.co/edit/u7c13AIdKPjmdkzRUPXd?p=preview

1 个答案:

答案 0 :(得分:0)

这是因为您在实例化时调用控制器中的函数removeStudents。如果您希望它在触发前等待某个事件,则需要将其绑定到事件。例如,您可以将其包装在某些点击功能中,如下所示:

$scope.whenIClickMyButton = function () {
    studentFactory.removeStudent(function (data){
        alert('test');
        $scope.students = data;
    });
}

<button ng-click="whenIClickMyButton()">Click Me</button>

并添加为click事件。现在,每次实例化控制器时它都会触发,因为你每次都会调用它。