为什么在这个剧本中:
<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" );
}
}
);
答案 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" );
});
});