У меня есть этот код здесь
<div ng-repeat="item in items" class="col-sm-4 portfolio-item">
<script type="text/ng-template" id="myModalContent.html">
Однако я не могу получить доступ к {{item}} в тегах скрипта. Есть ли способ, которым я могу вставлять id и type извне тегов div? Извините за вопрос о новичке.
Вот код для контроллера:
.controller('listCtrl', function($scope, $modal, $log, $stateParams, items) {
$scope.animationsEnabled = true;
$scope.open = function(size) {
var modalInstance = $modal.open({
animation: $scope.animationsEnabled,
templateUrl: 'myModalContent.html',
controller: 'ModalInstanceCtrl',
size: size,
resolve: {
item: function() {
return $scope.item;
}
}
});
modalInstance.result.then(function(selectedItem) {
$scope.selected = selectedItem;
}, function() {
$log.info('Modal dismissed at: ' + new Date());
});
};
$scope.toggleAnimation = function() {
$scope.animationsEnabled = !$scope.animationsEnabled;
};
})
// Please note that $modalInstance represents a modal window (instance) dependency.
// It is not the same as the $modal service used above.
.controller('ModalInstanceCtrl', function($scope, $modalInstance, items) {
$scope.items = items;
$scope.selected = {
items: $scope.items
};
$scope.ok = function() {
$modalInstance.close($scope.selected.item);
};
$scope.cancel = function() {
$modalInstance.dismiss('cancel');
};
})
Вы не можете получить доступ item
объекта в модальной шаблоне, поскольку он составлен в изолированной области действия ребенка в $rootScope
, так что это не путь для модальных содержимого наследовать элементы.
Что вы хотите сделать, так это предоставить базовую область для модального экземпляра. Попробуй это:
var modalInstance = $modal.open({
scope: $scope, // <--- use this scope as the base for new scope
animation: $scope.animationsEnabled,
templateUrl: 'myModalContent.html',
controller: 'ModalInstanceCtrl',
size: size,
resolve: {
item: function() {
return $scope.item;
}
}
});
В вышеприведенном фрагменте модальное обслуживание создаст новую область дочерних объектов из пройденной $ scope, и в этом случае модальная область наследует объекты прототипических объектов.