我在ng-include中有一个onload指令,似乎它被完全忽略了。 <h1>
块包含在我的HTML中,但未调用test()
。没有错误,没有日志,没有。感谢。
这是一个非常简单的例子:
<!doctype html>
<html>
<head>
<title>Testting</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"> </script>
<script>
var myApp = angular.module('testApp', []);
myApp.controller('MyMenu', ['$scope', '$element', function($scope, $element) {
$scope.username = 'David';
$scope.test = function() { console.log("Testing!"); };
}]);
</script>
</head>
<body ng-app="testApp">
<div ng-include="'views/global-nav.html'" onload="test()"></div>
</body>
</html>
和views / global-nav.html:
<h1 ng-controller="MyMenu">Hello {{username}}!</h1>
答案 0 :(得分:0)
您已在控制器'MyMenu'中声明了test(),因此test()函数位于控制器的范围内。但是这里调用test()的方式是onload会在自己的范围内搜索test(),但由于它不在这个范围内(它在控制器的范围内,是包含onload的div的子节点),它不起作用。
请查看以下
<!doctype html>
<html>
<head>
<title>Testting</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"> </script>
<script>
var myApp = angular.module('testApp', []);
myApp.controller('MyMenu', ['$scope', '$element', function($scope, $element) {
$scope.username = 'David';
$scope.test = function() { console.log("Testing!"); };
}]);
</script>
</head>
<body ng-app="testApp">
<div ng-controller="MyMenu">
<div ng-include="'views/global-nav.html'" onload="test()"></div></div>
</body>
</html>
和views / global-nav.html: -
<h1>Hello {{username}}!</h1>