这个简单程序的输出是什么?为什么?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这个简单程序的输出是什么?为什么?相关的知识,希望对你有一定的参考价值。
<div ng-app="myApp">
<div w3-test-directive></div>
<div w3-test-directivee ></div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.2/angular.min.js"></script>
<script>
var app = angular.module("myApp", []);
app.directive("w3TestDirective", function() {
return {
template : "howw!"
};
});
</script>
<script>
var app = angular.module("myApp", []);
app.directive("w3TestDirectivee", function() {
return {
template : "hie how are you!"
};
});
</script>
将返回哪个模板?我有两个脚本:哪个将被调用,为什么?
答案
删除第二个angular.module
调用中的第二个参数,它将按预期工作。有关第二个参数,请参阅docs:
If specified then new module is being created. If unspecified then the module is being retrieved for further configuration.
由于您提供了第二个参数,因此每次覆盖之前定义的任何内容时都会创建一个新的myApp
模块。
<div ng-app="myApp">
<div w3-test-directive></div>
<div w3-test-directivee ></div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.2/angular.min.js"></script>
<script>
var app = angular.module("myApp", []);
app.directive("w3TestDirective", function() {
return {
template : "howw!"
};
});
</script>
<script>
var app = angular.module("myApp");
app.directive("w3TestDirectivee", function() {
return {
template : "hie how are you!"
};
});
</script>
另一答案
删除app模块的多个定义,即移除define app的第一个指令。
<div ng-app="myApp">
<div w3-test-directive></div>
<div w3-test-directivee></div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.2/angular.min.js"></script>
<script>
var app = angular.module("myApp", []);
app.directive("w3TestDirective", function () {
alert("w3TestDirective called");
return {
template: "howw!"
};
});
</script>
<script>
// var app = angular.module("myApp", []);
app.directive("w3TestDirectivee", function () {
alert("w3TestDirectivee called");
return {
template: "hie how are you!"
};
});
</script>
以上是关于这个简单程序的输出是什么?为什么?的主要内容,如果未能解决你的问题,请参考以下文章