2014-09-05 31 views
13

AngularJS Önyükleme modalını kullanıyorum (http://angular-ui.github.io/bootstrap/). Hangi iyi çalışıyor, ancak bir başlık ve içeriğe girebilecek temel bir şablon oluşturabilir miyim diye merak ediyordum.AngularJS Bootstrap modemi için yeniden kullanılabilir bir şablon nasıl oluşturulur

Sonra şablonumu bu bilgi ile doldurur. Şablonun kapat düğmesi, iptal düğmesi, bindirme vb. Olurdu. Bu AngularJS'yi yapmanın kolay bir yolu var mı?

Bu örnekte alınmıştır ve sahip olduğum şeyle ilgilidir. İçeriğim templateUrl’de. Modal şablondan geçmek güzel olurdu, bu yüzden yarattığım her modalın başlığını ve yakın düğmelerini yeniden oluşturmak zorunda kalmam.

var modalInstance = $modal.open({ 
    templateUrl: 'myModalContent.html', 
    controller: ModalInstanceCtrl, 
    size: size, 
    resolve: { 
    items: function() { 
     return $scope.items; 
    } 
    } 
}); 
+0

sadece o belirli için birkaç direktifleri yapabiliriz:

app.directive('modalDialog', function() { return { restrict: 'E', replace: true, transclude: true, link: function(scope) { scope.cancel = function() { scope.$dismiss('cancel'); }; }, template: "<div>" + "<div class='modal-header'>" + "<h3 ng-bind='dialogTitle'></h3>" + "<div ng-click='cancel()'>X</div>" + "</div>" + "<div class='modal-body' ng-transclude></div>" + "</div>" }; }); 

Modal ('yourTemplate.html'):

<modal-dialog> <div> Your body/message </div> </modal-dialog> 

JavaScript

Bu

benim direktifi oldu modal pencerenin parçaları. – Sobieck

cevap

12

direktifleri ile yapmak için bir yol buldum. Şablon içeren özel bir yönergeye sahip bir model açılır. Sonra, modalınızda ne varsa, özel şablonunuza eklenir. Bu güzel çünkü sadece bir mesajdan daha fazlasını tutar. Formlar, uyarılar veya istediğiniz herhangi bir şeyle doldurulabilir.

app.controller('YourController', ['$scope', '$modal', function($scope, $modal) { 
    $scope.openModal = function() { 
    $modal.open({ 
     templateUrl: 'yourTemplate.html', 
     controller: ModalController 
    }); 
    }; 
}]); 

var ModalController = function ($scope, $modalInstance) { 
    $scope.dialogTitle = 'Your title'; 
}; 
+1

AngularJS'nin $ modal parçasıdır? –

İlgili konular