如何监视“指令”模块内“服务”模块中的变量。 我有一个服务模块。
angular
.module('SGA')
.service('messageService', [messageService]);
function messageService() {
var ctrl = this;
this.messages = [];
this.send = function (message, type) {
ctrl.messages.push({ text: message, type: type });
};
我有一个指令模块
angular.module('SGA').directive('message', function () {
return {
restrict: 'E',
scope: {},
bindToController: {
msg: '@'
},
templateUrl: "assets/templates/message/message.html",
controllerAs: 'ctrl',
link: function (){}
}
})
我希望当更改指令模块的变量“messages”更改并发送templateUrl的新值时。 我需要一直监视变量,因为当她得到某些东西时,我需要在页面上显示
答案 0 :(得分:1)
您需要将服务注入指令。
angular.module('SGA').directive('message', 'messageService', function (messageService) {
然后在你的链接功能
link: function (scope){
messageService.send("hello");
scope.messages = messageService.getMessages();
}
查看承诺,以帮助您使用服务https://docs.angularjs.org/api/ng/service/ $ q
设置范围变量