开发者问题收集

ReferenceError: 函数未定义错误

2016-02-24
1074

我希望在触发 emit 事件并运行 $on 侦听器时调用 setValue 函数。 我收到以下错误: ReferenceError:setValue 未定义 为什么会发生这种情况?

angular.module('clientApp')
.service('ManagerService',
['$rootScope', function($rootScope) {

  var someValue = false;

  this.setValue = function(value) {
    someValue = value;
  }

  $rootScope.$on('event', function(event, data) {
    setValue(true);
  });

}]);
2个回答

定义 setValue 变量或声明一个具有此名称的函数。

angular.module('clientApp')
.service('ManagerService',
['$rootScope', function($rootScope) {

  var someValue = false;

  this.setValue = setValue;

  function setValue(value) {
    someValue = value;
  }

  $rootScope.$on('event', function(event, data) {
    setValue(true);
  });

}]);
Yury Tarabanko
2016-02-24

对象存储到变量中然后使用它

angular.module('clientApp')
.service('ManagerService',
['$rootScope', function($rootScope) {
var vm = this;
  var someValue = false;

  vm.setValue = function(value) {
    someValue = value;
  }

  $rootScope.$on('event', function(event, data) {
    vm.setValue(true);
  });

}]);
Sandeep
2016-02-24