AngularJS运行执行功能?

时间:2016-01-08 21:41:00

标签: javascript angularjs function

为什么在这个剧本中:

<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
        <script>
        var app = angular.module( "test", [] );  

        app.run(
            angular.element.prototype.test = function ( ) {
                alert ( "da" );
            }
        );

        app.directive('cacat', function() {
            return {
                restrict: 'E',
                link: function (scope, element, attrs) {
                }
            };
        });
        </script>
    </head>
    <body ng-app="test">
        <cacat></cacat>
    </body>
</html>

调用函数测试? 我只想在我想要的时候调用这个函数。

答案

        app.run(
            function () {
                angular.element.prototype.test = function ( ) {
                    alert ( "da" );
                }
            }
        );

1 个答案:

答案 0 :(得分:4)

可以评估赋值语句的值。 如果您执行类似

的操作
var x = false;
if(x = true) { /*Some code here*/ }

x已分配,然后在if语句中进行评估

在您的样本中,

app.run(angular.element.prototype.test = function ( ) {
            alert ( "da" );
        })

评估您分配给angular.element.prototype.test的函数,有效地将该函数传递给app.run()app.run()接受它,正如人们所料,它会运行它。

如果您只是希望 run()执行中进行 ,则需要传递一个执行此操作的函数,如下所示:

app.run(function(){
    angular.element.prototype.test = function ( ) {
        alert ( "da" );
    });
});