Я не знаю, какую версию Angular-интерфейс, который был, но документация для модальных окон остается запутанной. Хотя вы действительно можете использовать директиву ngInclude как часть показа модального окна, это необязательно, как показано ниже. В приведенном ниже случае модальные html и скрипты находятся в отдельных файлах, а modal.open() используется для их ссылки и отображения. По какой-то причине, я только был в состоянии осуществить обновляемую модель, когда он был принят в качестве объекта имущества $ сферы .. (см «VM.» В коде)
ModalView.html фрагмент
<!-- html elements reference the ModalViewCtrl decorated $scope -->
<input ng-model='vm.email' type='email' placeholder='Email address' autofocus />
<input ng-model="vm.password" type="password" class="form-control" placeholder="Password" />
<label class="checkbox">
<input ng-model="vm.rememberMe" type="checkbox" />
Remember me
</label>
ModalViewCtrl.js фрагмент
angular.module('app')
.controller('ModalViewCtrl', function($scope, $modal, parms) {
/* decorate the $scope and/or preset the $scope.vm object
as needed with parms.parm1, parms.parm2, ....
*/
$scope.ok = function() {
$modalInstance.close($scope.vm);
};
$scope.cancel = function() {
$modalInstance.dismiss();
};
});
SourcePageCtrl.js фрагмент
angular.module('app')
.controller('SourcePageCtrl', function($scope, $modal, ...) {
$scope.open = function() {
var modalInstance = $modal.open({
templateUrl: 'path_literal_to_ModalView.html'
,controller: 'ModalViewCtrl'
,resolve : {
parms : function() { return {
parms1 : value1
,parm2 : value2
,...
}}
});
modalInstance.result.then(
function (vm) {
$scope.result = vm;
} , function() {
...
}
);
});
});
Если вы хотите для использования включить, однако, есть две gotchas.
- «templateUrl» должен ссылаться на идентификатор модальных элементов, содержащих тег, такие как идентификатор самого ngInclude, как и против URL-файла файла шаблона.
Поскольку угловые оценивает значение атрибутов, если буквальным предоставляется атрибут Src траектории элемента он должен быть в кавычках внутри уже цитированной строка:
Документы состояние этого 'modal' работает для 'модалов, которые уже находятся в вашей DOM'. Если еще не в DOM, можно использовать более низкий уровень 'dialog' – charlietfl