在下面的示例中,为什么 AngularJS 在我的 HTML 中编译 {{'world'}} 但不执行指令?
HTML
<body>
<div>Hello {{'World'}}!</div>
<example>should be replaced</example>
<script data-main="lib/main" src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.5/require.min.js"></script>
</body>
main.js
require.config({
paths: {
jquery: '//code.jquery.com/jquery-1.10.0.min',
angular: '//cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.5/angular.min'
},
shim: {
'angular' : {'exports' : 'angular'}
},
priority: [
"angular"
]
});
require( [
'jquery',
'angular',
'app'
], function($, angular, app) {
'use strict';
$(document).ready(function () {
angular.bootstrap(document,[]);
app.directive('example',function(){
return {
restrict: "E",
template:"<div>Replaced</div>"
}
})
});
});
应用程序.js
define([
'angular'
], function (angular) {
'use strict';
return angular.module('myApp', []);
});
运行时在浏览器窗口中可见
Hello World!
should be replaced
因此 Angular 已初始化为 {{'World'}} 已编译为 World 但“示例”指令已失败,因为“应该替换”尚未替换为“已替换”
我意识到 HTML 中没有应用程序持有者,但如果我尝试添加一个,我会收到错误
例如
<div ng-app='myApp'>
<div>Hello {{'World'}}!</div>
<example>should be replaced</example>
</div>
给出错误
Uncaught Error: No module: myApp http:// ...