Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 类型错误:<&燃气轮机;这不是一个函数。难倒_Javascript - Fatal编程技术网

Javascript 类型错误:<&燃气轮机;这不是一个函数。难倒

Javascript 类型错误:<&燃气轮机;这不是一个函数。难倒,javascript,Javascript,我一辈子都搞不懂为什么控制台告诉我persistSetting()和persistAllSettings()函数不是函数 这是一个angularJS控制器 它是否与函数中的异步方法调用有关 configApp.controller('settingsController', ['$scope', function($scope) { $scope.toPersist = { discreteValue: 6, qualityCheckBox: false }; $sc

我一辈子都搞不懂为什么控制台告诉我persistSetting()和persistAllSettings()函数不是函数

这是一个angularJS控制器

它是否与函数中的异步方法调用有关

configApp.controller('settingsController', ['$scope', function($scope) {
  $scope.toPersist = {
    discreteValue: 6,
    qualityCheckBox: false
  };
  $scope.$watchCollection('toPersist', function(newConfigSetting) {
      this.persistSetting(newConfigSetting);
      this.persistAllSettings();
  });
  function persistAllSettings() {
      chrome.storage.sync.set(toPersist, function() {
        // notify user?
      });
  }
  function persistSetting(someSetting) {
    chrome.storage.sync.set(someSetting, function() {
      // notify user?
    });
  }
}]);

您有名为
persistSetting
persistAllSettings
的本地函数,但您试图在没有具有这些名称的方法的对象上调用名为
persistSetting
persistAllSettings
的方法。(这就像声明名为
foo
的变量不会突然使其成为
this.foo

您很可能需要执行以下操作之一:

  • this.persistSetting
    this.persistAllSettings
    分别更改为
    persistSetting
    persistAllSettings
  • 将该对象上的
    persistSetting
    persistAllSettings
    方法分别设置为
    persistSetting
    persistAllSettings
    函数

不要使用
this作为作用域中可见函数的前缀。
,因为它用于访问实例方法

$scope.$watchCollection('toPersist', function(newConfigSetting) {
    persistSetting(newConfigSetting);
    persistAllSettings();
});

它们可能不是
此对象的一部分。我看到它们被定义在那里,但它们并不是任何对象的一部分。您可能不需要
这个
。就是这样。谢谢,这让我快发疯了。