2016-04-21 88 views
1

這真的很奇怪...所以突然一個變量,我已經設置和重新設置在我的控制器中無數次突然將不再允許本身重置。Angularjs變量設置方法不改變外部變量的方法

控制器:

$scope.classIndex = 0; 

$scope.classNum = function(i){ 
    $scope.classIndex = i; 
    //do other stuff with $scope.classIndex 
    //// This one wont update classIndex i.e. functions called with it always 
    ////show classindex as 0 
} 

$scope.viewClass = function(i){ 
    $scope.classIndex = i; 
    //do other stuff with $scope.classIndex //// BUT !!?? This one works fine 
} 

的Html

////inside an ng repeat ... hence $index 
<div class="btn-group col-xs-10 col-xs-offset-1" ng-show="options"> 
    <button class="btn btn-xs btn-info btn-flat col-xs-6" ng-click="viewClass($index)"><i class="fa fa-info-circle"></i> View </button> 
    <button class="btn btn-xs btn-danger btn-flat col-xs-6" ng-click="classNum($index)"><i class="fa fa-trash-o"> Delete</i></button> 
</div> 

所以基本上我認爲按鈕會顯示正確的項目,但始終刪除索引中刪除的項目[0]。

有什麼想法?

編輯:這顯然是一個錯誤。我如果不使用任何HTML頁面變量,ANG使用它在 複製代碼到一個新的文件,上傳到服務器,它突然又開始工作......

+3

我不認爲你上面發佈的代碼有任何問題,問題可能在其他地方。如果你能創建一個顯示這個問題的plunkr /小提琴將是有幫助的。 –

+0

不幸的是,我不能複製這個問題。我編寫了數千個變量,但是這是我寫入時第一個沒有分配的變量 – KyleM

回答

1

只有js的控制器,然後做它以給定的方式。 當你想用的HTML頁面數據綁定,如果你 使用在JS控制器的一些數據纔沒有必要的是

var classIndex = 0; 

$scope.classNum = function(i){ 
    classIndex = i; 
    //do other stuff with $scope.classIndex 
    //// This one wont update classIndex i.e. functions called with it always 
    ////show classindex as 0 
} 

$scope.viewClass = function(i){ 
    classIndex = i; 
    //do other stuff with $scope.classIndex //// BUT !!?? This one works fine 
} 
  • 「$範圍」被使用。
+0

因此,如果我沒有綁定數據,那麼我應該使用var或直接聲明,例如:classIndex = ....? – KyleM

+1

是的,這是更好的方法。 –