2017-07-11 46 views
0

我有下面的代碼創建了一個矩陣:NG-點擊添加一個類上的所有元素,而不只是一個

<div class="cell-container" ng-repeat="cell in field"> 
    <div ng-repeat="cols in cell track by $index" class="cell" ng-click="selectShip(cols)" ng-class="{ selected: !cols.empty }"> 
     {{ $parent.$index }} {{ $index }} 
    </div> 
</div> 

指令我有一個函數內部的點擊要改變對象的值,並添加時一個類所點擊的元素

scope: { 
    field: '=', 
    type: '@' 
}, 
link: function($scope) { 
    $scope.selectShip = function(item) { 
     if (item.empty === true) { 
      item.empty = false; 
     } else { 
      item.empty = true; 
     } 
    } 
} 

的問題是,當我在內部NG重複點擊一個div,它改變了對象的值,並在所有的div,而不僅僅是點擊一個添加一個類。

我在做什麼錯?

+0

你在哪裏使用你的指令在HTML或你的頁面? –

+0

我不明白這個問題 –

+0

這個模板,你有問題是它的指令的模板或你的頁面模板(局部視圖或路線)? – Shantanu

回答

0

這一定是因爲您正在使用$scope。相反,您應該使用獨立的作用域爲所有創建的指令元素創建一個單獨的作用域。 角度指令默認情況下繼承父作用域。 你可以在這裏找到一些幫助 - How to create an isolate scope

+0

已經創建了一個獨立的作用域。看看指令代碼的第一行。 –

+0

但是你沒有在鏈接函數中使用它 - '$ scope.selectShip = function(item){' –

相關問題