【发布时间】:2015-12-23 02:01:51
【问题描述】:
我有一个名为 areaOne 的 AngularJS 指令。当我使用 template 时,会显示模板,但是当我在 area1.js 中使用 templateUrl 时,不会呈现模板 HTML。
我在这里错过了什么?
服务器端:ASP.NET MVC 5
客户端:AngularJS 1
源代码在 github 上here 可用。
项目结构:
Root
Scripts
app.js
directives
area1.js
templates
area1.html
Views
Home
Index.cshtml
Index.cshtml
@{
ViewBag.Title = "Index";
}
@section Scripts{
<script src="~/Scripts/angular.js"></script>
<script src="~/Scripts/app.js"></script>
<script src="~/Scripts/directives/area1.js"></script>
}
<h2>Index</h2>
<div ng-app="app">
<area-one></area-one>
</div>
app.js
(function() {
angular.module("app", []);
})();
area1.js
(function() {
angular.module("app")
.directive("areaOne", function() {
return {
restrict: 'E',
templateUrl: '~/templates/area1.html',
controller: function ($scope) {
$scope.button1Click = function () {
alert("button1 clicked");
}
}
}
});
})();
area1.html
<div>
<button id="button1" ng-click="button1Click()">Button 1</button>
</div>
【问题讨论】:
-
Angular 将无法识别
templateUrl路径中的波浪号。您需要手动解决它(参见stackoverflow.com/questions/7397939/…)。
标签: javascript angularjs asp.net-mvc angularjs-directive