0
フォームのng-repeatに問題があります。ng-repeatから特定の要素を削除するにはどうすればよいですか?
ボタンをクリックすると、入力フィールドのグループが削除ボタンと共に表示されます。私はこれに対してng-repeatを使用しています。削除ボタンをクリックすると、特定の入力グループを削除できます。私が今すぐ書いた方法では、削除ボタンをクリックすることで、どこをクリックしていても、リストの一番下から入力が削除されます。ここでは、より良い、それを説明するためのGIFです:
(私が欠けている何かがありますしない限り、)私はそれだけでNGリピート内のその特定の$インデックスでは、単純なスプライスだろうと思ったが、どうやらありません。ここで
はNGリピートのためのHTMLです:任意の助けを事前に
$scope.addParameterFields = function() {
console.log('CLICKED');
if($scope.formData.gameIdParams === null || $scope.formData.gameIdParams === undefined) {
$scope.formData.gameIdParams = [];
}
$scope.formData.gameIdParams.push({
id: "",
label: "",
validationRegex: ""
});
console.log($scope.formData);
};
ありがとう:
<div class="form-group">
<label class="col-sm-2 control-label">More Parameters</label>
<button type="button" ng-click="addParameterFields()">Add Parameter</button>
<div class="col-sm-10 col-sm-offset-2">
<div ng-repeat="params in formData.gameIdParams track by $index" class="controls parameters">
<input type="text" ng-model="formData.gameIdParams.id[$index]"
name="gameIdParamsId"
class="col-sm-3"
autocomplete="off"
placeholder="Type of Input"
validation-field-required="true"/>
<input type="text" ng-model="formData.gameIdParams.label[$index]"
name="gameIdLabel"
class="col-sm-3"
autocomplete="off"
placeholder="Placeholder Text to add in Input Field"
validation-field-required="true"/>
<input type="text" ng-model="formData.gameIdParams.validationRegex[$index]"
name="gameIdvalidationRegex"
class="col-sm-3"
autocomplete="off"
placeholder="Regex used for Validation (optional)"
validation-field-required="false"/>
<button ng-click="formData.gameIdParams.splice($index,1)">Remove</button>
</div>
</div>
</div>
そして、ここでは、私はフォームを追加するために使用するロジックです!
ng-click="removeForm($index)"
$インデックスは、あなたのngのリピートループの反復数に対応する:よう
ええと、私もそれを試しました、そして、私はGIFを投稿した場合でも、あなたが見ることができる同じ動作を得ています。私はそれをconsole.logに設定して、単にインデックスを再確認するだけで、正しいインデックスが表示されています。しかし、まだリストの一番下から削除されています。 – amacdonald
よろしいですか?すべてのモデルをparams.your_variablesに置き換えてみてください。私に知らせてください – KCarnaille
AH!私はそれを解決した。私はちょうど大きなダミーだと私のngモデルを間違って書いています。私が上記のhtmlでは、_ng-model = "formData.gameIdParams.label [$ index] _ _ng-model =" formData.gameIdParams [$ index] .label._が必要です。 – amacdonald