TD内部<input>
タグでNGを-含ま:
<tbody>
<tr ng-repeat="meal in meals">
<td>{{ meal.id }}</td>
<td>{{ meal.name }}</td>
<td>
<a ng-click="open_yemek('lg', meal.name, meal.recipe, meal.ingredients)">Tıklayın</a>
</td>
<td class="text-center">
<!--<small class="label label-warning" style="font-size: 9px !important;"><i class="fa fa-clock-o"></i> {{ yemek.sure }}</small>-->
{{ meal.time }}
</td>
<td>{{ meal.category }}</td>
<td>{{ meal.region }}</td>
<td>{{ meal.user }}</td>
<td class="text-center">{{ meal.rank }}/10</td>
<td>{{ meal.status }}</td>
<td>
<i ng-click="editItem($index)" class="fa fa-pencil-square-o" aria-hidden="true"></i>
<a ng-click="removeItem('yemekler',$index)"><i class="fa fa-trash-o" aria-hidden="true"></i></a>
<a ng-click="addItem('yemekler')"><i aria-hidden="true" class="fa fa-plus"></i></a>
</td>
</tr>
</tbody>
これはJSです素子。 このようにすれば、「読み込み専用」と編集可能なものを1回のクリックで開くことができます。
あなたのテーブルのあなたのHTMLコードは次のようなものでなければなりません
:
<script type="text/ng-template" id="editableInput.html">
<input type="text" ng-model="row.value"></input>
</script>
<script type="text/ng-template" id="readonly.html">
<span>{{row.value}}</span>
</script>
そして、あなたのコントローラで、クリックリスナー:
$scope.makeEditable = function($index){
//remove every previous editable input...
if($scope.lastDataEditable != null)
$scope.lastDataEditable = false;
$scope.data[$index].isEditable = true;
$scope.lastDataEditable = $scope.data[$index];
}
いくつかのテンプレートを使用して
<tbody>
<tr ng-repeat="row in data track by $index">
<td> </td>
<td ng-click="makeEditable($index)" ng-include="{{row.isEditable ? 'editableInput.html' : 'readonly.html'}}"> </td>
<td> </td>
</tr>
</tbody>
注意:コードの形式を指定していないため、あなたの質問はあまりにも一般的です。私はあなたにあなたがすべき一般的な考えを提供しました。
実際には、同じ目的のためにディレクティブを使用することも検討してください。すべての環境が複雑になります。
あなたのアドバイスで自分のコードを変更しようとしましたが、自分のコードを追加できませんでした。 –
あなたのJavaScriptコードも共有してください – Luxor001
JSコードが追加されました。表示されたデータはデータベースから取得しています。 –