ฉันมีคำสั่งที่มีตัวควบคุมของตัวเอง ดูรหัสด้านล่าง:
var popdown = angular.module('xModules',[]);
popdown.directive('popdown', function () {
var PopdownController = function ($scope) {
this.scope = $scope;
}
PopdownController.prototype = {
show:function (message, type) {
this.scope.message = message;
this.scope.type = type;
},
hide:function () {
this.scope.message = '';
this.scope.type = '';
}
}
var linkFn = function (scope, lElement, attrs, controller) {
};
return {
controller: PopdownController,
link: linkFn,
replace: true,
templateUrl: './partials/modules/popdown.html'
}
});
นี่คือระบบแจ้งเตือนข้อผิดพลาด / การแจ้งเตือน / คำเตือน สิ่งที่ฉันต้องการทำคือจากคอนโทรลเลอร์อื่น (ไม่ใช่คำสั่ง) เพื่อเรียกใช้ฟังก์ชันshow
บนคอนโทรลเลอร์นี้ และเมื่อฉันทำเช่นนั้นฉันก็ต้องการให้ฟังก์ชันลิงก์ตรวจพบว่าคุณสมบัติบางอย่างเปลี่ยนแปลงไปและแสดงภาพเคลื่อนไหวบางอย่าง
นี่คือรหัสบางส่วนเพื่อเป็นตัวอย่างสิ่งที่ฉันขอ:
var app = angular.module('app', ['RestService']);
app.controller('IndexController', function($scope, RestService) {
var result = RestService.query();
if(result.error) {
popdown.notify(error.message, 'error');
}
});
ดังนั้นเมื่อเรียกshow
ใช้popdown
ตัวควบคุมคำสั่งควรเรียกใช้ฟังก์ชันลิงก์และแสดงภาพเคลื่อนไหวด้วย ฉันจะบรรลุเป้าหมายนั้นได้อย่างไร
popdown.show(...)
แทนที่จะpopdown.notify(...)
เป็นอย่างนั้นใช่ไหม มิฉะนั้นฟังก์ชันการแจ้งเตือนจะทำให้เกิดความสับสน
popdown.notify
ไหน? .notifiy
วิธีการฉันหมายถึง
popdown
คำสั่งบนหน้าที่ไหน - อยู่ในที่เดียวที่ตัวควบคุมอื่น ๆ ควรจะเข้าถึงทั้งหมดหรือมีป๊อปดาวน์หลายตัวในที่ต่างๆ?