2016-11-24 5 views
0

配列をスコープにプッシュし、その後に配列を空にする問題があります。Angularjsが配列をスコープにプッシュ

ng-click="addInput()ファンクションを起動して、別の配列meta_keys:$scope.tagsを含む$scope.info.sites = [];の配列に新しいフォームを追加します。

ng-click="addInput()を再度クリックすると、フォームが生成されますが、すでにデータが入力されています。すべてのmeta_keys:$ scope.tagsの同じ値を意味します。私は新しいものを生成する前に配列を空にする必要があると思う。 または私は間違った方法です。手伝ってくれてありがとう。

codepen.io

HTML

<div ng-app="myApp" ng-controller="myCtrl"> 
    {{name}} 

<form> 
<div class="form-group"> 
    <label for="txtDevice" class="control-label">Domain Name:</label> 
    <input type="text" class="form-control" ng-model="info.name" id="txtDevice"> 
</div> 
<div class="form-group"> 
    <label for="txtIP" class="control-label">IP Address:</label> 
    <input type="text" class="form-control" ng-model="info.ip" id="txtIP"> 
</div> 
<div class="form-group"> 
    <label for="txtUsername" class="control-label">Logo:</label> 
    <input type="text" class="form-control" ng-model="info.logo" id="txtLogo"> 
    </div> 

<div class="form-group" ng-repeat="site in info.sites track by $index"> 
    <h4>Seite {{$index+1}}</h4> 
<label type="txt" class="control-label">Title</label> 
<input type="txt" class="form-control" ng-model="site.site_title" /><br /> 
<label type="txt" class="control-label">Desc</label> 
<input type="text" class="form-control" ng-model="site.meta_desc"><br /> 
<label type="txt" class="control-label">Meta Keys</label> 
<!-- <input type="text" class="form-control" ng-model="site.meta_keys"> --> 
<tags-input ng-model="tags" ></tags-input> 
</div> 

</form> 
    <button ng-click="addInput()">+add more inputs</button> 
{{info | json}} 
    <hr> 


    tags = {{tags | json}} 

</div> 

script.js

angular.module('myApp', ['ngTagsInput']) 
    .controller('myCtrl', function($scope, $http){ 
     $scope.name ="myName" ; 
     $scope.info = {}; 
     $scope.info.sites = []; 
     $scope.tags = []; 


     $scope.addInput = function() { 
     //$scope.tags = []; 
     $scope.info.sites.push({ 
          site_title:'', 
          meta_desc:'', 
          meta_keys:$scope.tags}) 

} 
     // $scope.info.sites.meta_keys = []; 

}); 
+0

あなたの質問から、その非常に明確ではありませんあなたが探しているもの、あなたがより多くをeloborateし、あなたの質問にあなたのコードをcorelateてくださいすることができ。私はあなたのコードと質問が同期しておらず、混乱していると思います。 – Sreekanth

答えて

0

ジャストラインを交換

私は願っています

<tags-input ng-model="site.tags" ></tags-input> 

<tags-input ng-model="tags" ></tags-input> 

、それが役立ちます:)

+0

ありがとうございます。 – mvmthecreator

+0

なぜsite.tagsで利用できますか?私は$ scope.tags = []をファイルの先頭に定義しました。どうすれば配列のテキスト値を設定できますか? – mvmthecreator

+0

を参照してください。問題は$ scope.tagsです。このngmodelはすべての人に共通です。 $ scope.tagsに要素を追加すると、すべての要素に適用されます。タグを共通にするのではなく、すべてのタグをそれぞれの変数、つまり「サイト」に入れる必要があります。 –