javascript - 通过函数更新服务中的 'this' 值

标签 javascript angularjs

我对 Angular 还很陌生,正在尝试了解一切是如何工作的。我一直在四处寻找,但找不到任何有关如何执行此操作的信息。所以,我有一个定义的服务

this.totalCount = 0;

在我的 Controller 中,我的 get 请求检索一些电子邮件,然后为它检索的每条消息执行一个名为 addMessage 的函数。 addMessage 函数为我服务。

我的服务中的函数如下所示:

this.addMessage = function (messageObj) {
    this.messagesList.push(messageObj);
}

基本上,我试图在每次执行此函数时增加 this.totalCount ,以便它会更新,然后可以显示在 View 中。我当前将其显示在 View 中,但其编号始终保持为 0。

我尝试过以下方法:

1.

this.addMessage = function (messageObj) {
    this.messagesList.push(messageObj);
    this.totalCount++;
}

2.

var count = this.totalcount

this.addMessage = function (messageObj) {
    this.messagesList.push(messageObj);
    count++; //and then attempted to display this value in the view but with no luck
}

任何提示将不胜感激。

最佳答案

试试这个:

var that = this;
this.addMessage = function (messageObj) {
    that.messagesList.push(messageObj);
}

关于javascript - 通过函数更新服务中的 'this' 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31433731/

相关文章:

javascript - 将整个对象传递给 ng-grid 中的 cellFilter 函数

javascript - SVG.js TextPath 未与路径对齐(垂直)

Javascript 2 对象数组,从一个对象数组中获取值并将其分配给另一个对象数组

angularjs - Angular 项目的 package.json 中的 jshintConfig

javascript - 外部 ui-grid-menu-button?

javascript - Angular,同步两个选择元素

javascript - AngularJS 测试 Controller 与指令中的谷歌地图

javascript - 为什么当函数在不同的声明变量上运行时输入会改变?

带有字符串值的 Javascript 加法和减法

javascript - 如何在指令 AngularJS 中包装 jQuery(默认)handsontable?