没有使用模块显示模式有一种方法我可以访问"这"在一个匿名函数里面?

时间:2014-05-10 06:56:57

标签: javascript angularjs

如果我有以下代码。我是唯一可以使用this变量访问函数内部self的方法,还是可以通过其他方式访问函数内的this

app.controller('ChildCtrl', function($scope, _o) {

  var self=this;
  this.option = {};
  this.option.abc = 25;

  $q.all([_o.getUserProfiles(),
          _u.getConfigs()
        ])
        .then(function (results) {
            ???.option.userProfiles = results[0].userProfiles;
        });

1 个答案:

答案 0 :(得分:5)

您可以使用bind。可能这对你来说会更舒适。

app.controller('ChildCtrl', function($scope, _o) {

  this.option = {};
  this.option.abc = 25;

  $q.all([_o.getUserProfiles(),
          _u.getConfigs()
        ])
        .then(function (results) {
            this.option.userProfiles = results[0].userProfiles;
        }.bind(this));

有关bind的更多信息,请参阅此处:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind