2016-10-27 37 views
0

HTML:如何使一個角js函數來改變按鈕含量超過一次

<p> 
    <a class="btn btn-lg btn-success" href="#"ng-click="splendido()">{{salute}}</a></p> 

main.js

$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++; 
    } 

被點擊它調用斯潘按鈕每次()函數,我的目標是改變{{salute}}的內容不止一次。 我無法做到正確,爲什麼它沒有像我預期的那樣更新?



我採用了棱角分明的js 1.5.8

+0

可以定義'$ scope.calls = 0'。在函數中, '//增加 $ scope.calls = $ scope.calls + 1。 //然後是if語句。 – Mahesh

+0

調用變量應該在splendido函數 – Ezkin

回答

1

首先,您需要實例變量「致敬」的功能之外,加載控制器時獲得一個默認值。

其次,作爲第一步,你需要初始化功能的「通話」變量之外,如果你不這樣做,「叫」始終返回1

此代碼的工作!

$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++; 
} 
+0

之外定義,你是對的:我在代碼中失去了一點點東西......感謝你的回答! – Fedeco

1

因爲您重置調用變量每次調用該函數

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

     ... 
    } 

改變它的東西是這樣的:

var calls = 1; 
$scope.salute = "I'm greeting you for first time"; 

$scope.splendido = function() {   
     if (calls == 2) { 
      $scope.salute = "2nd time"; 
     } 
     else if (calls == 3) { 
      $scope.salute = "3rd time"; 
     } 
     else { 
      $scope.salute = "you're annoying me"; 
     } 

     calls++; 
    } 
+1

不需要將調用變量暴露給$ scope –

+1

是的,你是對的。只是發佈後發佈..我改變它。 –

相關問題