Javascript 如何使用angular js函数多次更改按钮内容

Javascript 如何使用angular js函数多次更改按钮内容,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,html: 每次单击该按钮都会调用splendido()函数,我的目标是多次更改{{sallet}的内容。 我没有把它弄对,为什么它没有像我预期的那样更新 我正在使用Angular js 1.5.8首先,您需要在函数外部实例化变量'sallet',以便在加载控制器时获得默认值 其次,与第一步一样,需要在函数外部初始化'calls'变量,如果不这样做,则'call'始终返回1 这个代码有效 $scope.splendido=function() { var calls=1;

html:

每次单击该按钮都会调用splendido()函数,我的目标是多次更改{{sallet}的内容。 我没有把它弄对,为什么它没有像我预期的那样更新




我正在使用Angular js 1.5.8

首先,您需要在函数外部实例化变量'sallet',以便在加载控制器时获得默认值

其次,与第一步一样,需要在函数外部初始化'calls'变量,如果不这样做,则'call'始终返回1

这个代码有效

$scope.splendido=function()
    {
      var calls=1;

      $scope.salute='I'm greeting you for first time';

      if(calls==2)$scope.salute="2nd time";
      if(calls==3)$scope.salute="3rd time";
      if(calls>3)$scope.salute="you're annoying me" ;
      calls++;
    }

首先,您需要在函数外部实例化变量“sallet”,以便在加载控制器时获得默认值

其次,与第一步一样,需要在函数外部初始化'calls'变量,如果不这样做,则'call'始终返回1

这个代码有效

$scope.splendido=function()
    {
      var calls=1;

      $scope.salute='I'm greeting you for first time';

      if(calls==2)$scope.salute="2nd time";
      if(calls==3)$scope.salute="3rd time";
      if(calls>3)$scope.salute="you're annoying me" ;
      calls++;
    }

因为每次调用函数时都会重置calls变量

$scope.salute="I'm greeting you for first time";
var calls=1;
$scope.splendido = function() {
    if(calls==1)$scope.salute="2nd time";
    if(calls==2)$scope.salute="3rd time";
    if(calls>2)$scope.salute="you're annoying me" ;
    calls++;
}
将其更改为以下内容:

$scope.splendido=function()
    {
      var calls=1; // HERE IS THE PROBLEM

      ...
    } 

因为每次调用函数时都会重置calls变量

$scope.salute="I'm greeting you for first time";
var calls=1;
$scope.splendido = function() {
    if(calls==1)$scope.salute="2nd time";
    if(calls==2)$scope.salute="3rd time";
    if(calls>2)$scope.salute="you're annoying me" ;
    calls++;
}
将其更改为以下内容:

$scope.splendido=function()
    {
      var calls=1; // HERE IS THE PROBLEM

      ...
    } 

您可以定义
$scope.calls=0
。在函数中,
//increment$scope.calls=$scope.calls+1//然后是if语句。
calls变量应该在splendido函数之外定义。您可以定义
$scope.calls=0
。在函数中,
//increment$scope.calls=$scope.calls+1//然后是if语句。
calls变量应该在splendido函数之外定义,不需要将calls变量公开给$scopeyes您是对的。刚发帖就注意到。。我更改了它。没有必要将calls变量公开给$scopeyes是的,您是对的。刚发帖就注意到。。我改变了。你是对的:我因为一件小事而迷失在代码中……谢谢你的回答!你说得对:我因为一件小事而迷失在代码中……谢谢你的回答!