การใช้ $provide.decorator
ใช้$provide
ในการตกแต่งสั่งหลีกเลี่ยงความจำเป็นในการโดยตรงยุ่ง ๆ $templateCache
กับ
ให้สร้าง html เทมเพลตภายนอกของคุณตามปกติโดยใช้ชื่ออะไรก็ได้ที่คุณต้องการแล้วแทนที่คำสั่งที่templateUrl
จะชี้ไป
angular.module('plunker', ['ui.bootstrap'])
.config(['$provide', Decorate]);
function Decorate($provide) {
$provide.decorator('alertDirective', function($delegate) {
var directive = $delegate[0];
directive.templateUrl = "alertOverride.tpl.html";
return $delegate;
});
}
ส้อมของpkozlowski.opensourceของ plunkr: http://plnkr.co/edit/RE9AvUwEmKmAzem9mfpI?p=preview
(โปรดทราบว่าคุณต้องต่อท้ายคำสั่ง "คำสั่ง" ต่อท้ายชื่อคำสั่งที่คุณต้องการตกแต่งด้านบนเรากำลังตกแต่งalert
คำสั่งของ UI Bootstrap ดังนั้นเราจึงใช้ชื่อalertDirective
นี้)
ในขณะที่คุณมักต้องการทำมากกว่าการลบล้างสิ่งtemplateUrl
นี้จึงเป็นจุดเริ่มต้นที่ดีในการขยายคำสั่งเพิ่มเติมเช่นโดยการแทนที่ / ตัดลิงก์หรือฟังก์ชันคอมไพล์ ( เป็นต้น )
$modal
บริการเพื่อให้สามารถกำหนดค่าได้มากขึ้นโดยที่ (หวังว่า) จะสร้างความปวดหัวในการบำรุงรักษา$provide.decorator('$modal'
... ในกรณีของฉันฉันไม่ต้องการแสดงmodalWindow
องค์ประกอบ เคย. ฉันไม่ได้ใช้มันและนี่คือสิ่งที่ดีที่สุดที่ฉันสามารถทำได้ ฉันชอบที่จะได้ยินวิธีที่ดีกว่านี้ถ้าใครมี