Javascript Angular.js:在$watch中使用颜色代码

Javascript Angular.js:在$watch中使用颜色代码,javascript,angularjs,watch,lexer,Javascript,Angularjs,Watch,Lexer,如何在字符串变量中使用颜色代码并将此变量链接到$watch表达式 $scope.$watch($scope.backgroundTextColor, function(){ // code inside function }); 通过示例代码,我得到了下一个错误: "Error: [$parse:lexerr] Lexer Error: Unexpected next character at columns 0-0 [#] in expression [#9c5c5c]...

如何在字符串变量中使用颜色代码并将此变量链接到$watch表达式

$scope.$watch($scope.backgroundTextColor, function(){
      // code inside function
});
通过示例代码,我得到了下一个错误:

"Error: [$parse:lexerr] Lexer Error: Unexpected next character  at columns 0-0 [#] in expression [#9c5c5c]...

不要将变量按原样放入
$watch
表达式中,而是尝试返回变量值:

$scope.$watch(function() { return $scope.backgroundTextColor }, function() {
      // code inside function
});

我更喜欢使用变量本身,而不是它的HTML字符串表示形式(
backgroundTextColor
),这样您对视图更不可知。

与其将变量按原样放置在
$watch
表达式中,不如尝试返回变量值:

$scope.$watch(function() { return $scope.backgroundTextColor }, function() {
      // code inside function
});

我更喜欢使用变量本身,而不是它的HTML字符串表示形式(
backgroundTextColor
),这样您对视图更不可知。

您传递的是
$scope.backgroundTextColor

您需要传递变量的名称,例如

$scope.$watch('backgroundTextColor', function(newValue, oldValue){
      // code inside function
});

查看一下

您正在传递
$scope.backgroundTextColor的值

您需要传递变量的名称,例如

$scope.$watch('backgroundTextColor', function(newValue, oldValue){
      // code inside function
});

请看一看

您正在尝试使用一个神奇的字符串

Angular中的
$watch
函数可以接受一个返回您要查看的值的函数,也可以接受一个引用您要查看的变量的字符串(魔术字符串)

字符串将引用变量,就像您在HTML中一样。因此,如果您使用的是
$scope
(看起来是这样),您需要:

$scope.$watch('backgroundTextColor', function(newValue, oldValue){
      // code inside function
});
如果您为控制器设置了别名(例如使用
ControllerAs
),则需要参考:

$scope.$watch('ctrl.backgroundTextColor', function(newValue, oldValue){
      // code inside function
});
否则,您可以使用以下函数:

$scope.$watch(function() {
    return $scope.backgroundTextColor;
}, function(newValue, oldValue){
      // code inside function
});

你在尝试使用一个神奇的字符串

Angular中的
$watch
函数可以接受一个返回您要查看的值的函数,也可以接受一个引用您要查看的变量的字符串(魔术字符串)

字符串将引用变量,就像您在HTML中一样。因此,如果您使用的是
$scope
(看起来是这样),您需要:

$scope.$watch('backgroundTextColor', function(newValue, oldValue){
      // code inside function
});
如果您为控制器设置了别名(例如使用
ControllerAs
),则需要参考:

$scope.$watch('ctrl.backgroundTextColor', function(newValue, oldValue){
      // code inside function
});
否则,您可以使用以下函数:

$scope.$watch(function() {
    return $scope.backgroundTextColor;
}, function(newValue, oldValue){
      // code inside function
});

而函数的内部是什么呢?//函数的内部是什么呢?你必须再多给我们看一点,不能帮你处理$scope。$watch('backgroundTextColor',function(){//code inside function});而函数的内部是什么呢?//函数的内部是什么呢?你必须再给我们看一点,不能帮你处理$scope。$watch('backgroundTextColor',function(){//函数内的代码});回答很好!成功了!当我在引号之间写变量名,在应用程序中更改颜色时,调试器停止在watch函数内。非常感谢!回答很好!成功了!当我在引号之间写变量名,在应用程序中更改颜色时,调试器停止在watch函数内。非常感谢!