如何在更改Angularjs时监视变量

时间:2016-09-01 16:43:30

标签: angularjs

如何监视“指令”模块内“服务”模块中的变量。 我有一个服务模块。

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的新值时。 我需要一直监视变量,因为当她得到某些东西时,我需要在页面上显示

1 个答案:

答案 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

设置范围变量