AngularJS & Bootstrap 模式 - 在控制器外加载模板
AngularJS & Bootstrap Modal - loading template outside controller
我有一个对话框在同一页面的 3 个场景中使用。我创建了一个类似于下面的控制器:
var modalInstance = $modal.open({
templateUrl: 'myModalContent.html',
controller: 'ModalInstanceCtrl',
size: size,
resolve: {
items: function () {
return $scope.items;
}
}
});
<script type="text/ng-template" id="myModalContent.html">
<div class="modal-header">
<h3 class="modal-title">Im a modal!</h3>
</div>
<div class="modal-body">
<ul>
<li ng-repeat="item in items">
<a ng-click="selected.item = item">{{ item }}</a>
</li>
</ul>
Selected: <b>{{ selected.item }}</b>
</div>
<div class="modal-footer">
<button class="btn btn-primary" ng-click="ok()">OK</button>
<button class="btn btn-warning" ng-click="cancel()">Cancel</button>
</div>
</script>
问题是,由于此对话框在同一页面的 3 个不同部分中使用,所以我的模板有问题。当我将 html 模板放在控制器外部时,在页面的最后 html,它失败并给我一个 404。
但是,我不想在同一页的 3 个地方重复 HTML 的同一块。有人可以告诉我是否有其他方式调用控制器外部的模板吗?
重用模板的一个好方法是将其放在单独的 html 文件中,并将其 url 放在 templateUrl
中。所以$modal
每次需要的时候都可以从服务器上获取。
我有一个对话框在同一页面的 3 个场景中使用。我创建了一个类似于下面的控制器:
var modalInstance = $modal.open({
templateUrl: 'myModalContent.html',
controller: 'ModalInstanceCtrl',
size: size,
resolve: {
items: function () {
return $scope.items;
}
}
});
<script type="text/ng-template" id="myModalContent.html">
<div class="modal-header">
<h3 class="modal-title">Im a modal!</h3>
</div>
<div class="modal-body">
<ul>
<li ng-repeat="item in items">
<a ng-click="selected.item = item">{{ item }}</a>
</li>
</ul>
Selected: <b>{{ selected.item }}</b>
</div>
<div class="modal-footer">
<button class="btn btn-primary" ng-click="ok()">OK</button>
<button class="btn btn-warning" ng-click="cancel()">Cancel</button>
</div>
</script>
问题是,由于此对话框在同一页面的 3 个不同部分中使用,所以我的模板有问题。当我将 html 模板放在控制器外部时,在页面的最后 html,它失败并给我一个 404。
但是,我不想在同一页的 3 个地方重复 HTML 的同一块。有人可以告诉我是否有其他方式调用控制器外部的模板吗?
重用模板的一个好方法是将其放在单独的 html 文件中,并将其 url 放在 templateUrl
中。所以$modal
每次需要的时候都可以从服务器上获取。