Angular 模态:从另一个 html 添加模板
Angular Modal: add template from another html
我在另一个 html 文件中有一个模态模板,但在页面加载后第一次模态 window 打开时没有内容,第二次一切正常。如何解决?
这里是 plunker http://plnkr.co/edit/lw056nAaU7BfqIVZSddb?p=preview
//Open modal on main page with:
<div ng-controller="ModalDemoCtrl">
<button type="button" class="btn btn-default" ng-click="open()">Open me!</button>
<button type="button" class="btn btn-default" ng-click="open('lg')">Large modal</button>
<button type="button" class="btn btn-default" ng-click="open('sm')">Small modal</button>
<button type="button" class="btn btn-default" ng-click="toggleAnimation()">Toggle Animation ({{ animationsEnabled }})</button>
<div ng-show="selected">Selection from a modal: {{ selected }}</div>
也许您可以在这种情况下使用 $templateCache
从另一个文件加载模板。我不知道你为什么会遇到这个问题,但这解决了我的问题。
也许你不是在寻找类似的东西,因为这会增加 JS 文件的大小,有时永远不会使用这个模板。
angular.module('ui.bootstrap.demo').run(['$templateCache', function ($templateCache) {
$templateCache.put('myModalContent.html',
'Hello World'
);
}]);
你怎么看?
编辑:根据问题,@Pierre Maoui 的回答似乎更适合我。
你不应该用 <script type="text/ng-template" id="myModalContent.html"></script>
包装你的模板。
Ui-modal 期望这里直接 HTML。
如果你需要使用 ng-template,你应该在你的 index.html 中插入 ng-template 脚本标签(或其他任何地方,但它应该加载到你的页面中)并使用 [= 打开你的模态12=] 而不是 templateUrl
这样:
var modalInstance = $uibModal.open({
animation: $scope.animationsEnabled,
template: "<div ng-include src=\"'myModalContent.html'\"></div>",
controller: 'ModalInstanceCtrl',
size: size,
resolve: {
items: function () {
return $scope.items;
}
}
});
我在另一个 html 文件中有一个模态模板,但在页面加载后第一次模态 window 打开时没有内容,第二次一切正常。如何解决?
这里是 plunker http://plnkr.co/edit/lw056nAaU7BfqIVZSddb?p=preview
//Open modal on main page with:
<div ng-controller="ModalDemoCtrl">
<button type="button" class="btn btn-default" ng-click="open()">Open me!</button>
<button type="button" class="btn btn-default" ng-click="open('lg')">Large modal</button>
<button type="button" class="btn btn-default" ng-click="open('sm')">Small modal</button>
<button type="button" class="btn btn-default" ng-click="toggleAnimation()">Toggle Animation ({{ animationsEnabled }})</button>
<div ng-show="selected">Selection from a modal: {{ selected }}</div>
也许您可以在这种情况下使用 $templateCache
从另一个文件加载模板。我不知道你为什么会遇到这个问题,但这解决了我的问题。
也许你不是在寻找类似的东西,因为这会增加 JS 文件的大小,有时永远不会使用这个模板。
angular.module('ui.bootstrap.demo').run(['$templateCache', function ($templateCache) {
$templateCache.put('myModalContent.html',
'Hello World'
);
}]);
你怎么看?
编辑:根据问题,@Pierre Maoui 的回答似乎更适合我。
你不应该用 <script type="text/ng-template" id="myModalContent.html"></script>
包装你的模板。
Ui-modal 期望这里直接 HTML。
如果你需要使用 ng-template,你应该在你的 index.html 中插入 ng-template 脚本标签(或其他任何地方,但它应该加载到你的页面中)并使用 [= 打开你的模态12=] 而不是 templateUrl
这样:
var modalInstance = $uibModal.open({
animation: $scope.animationsEnabled,
template: "<div ng-include src=\"'myModalContent.html'\"></div>",
controller: 'ModalInstanceCtrl',
size: size,
resolve: {
items: function () {
return $scope.items;
}
}
});