2016-04-18 6 views
0

私はテキストを表示するdivを持っています。その下にはdivのテキストを編集できるテキストエリアがあります。テキストエリアのテキストをテキストに入力すると、divのテキストが変更されます。この問題は発生したくありません。問題はdivとtextエリアの両方が再作成されています。私は両方のために異なる範囲を使用していただろう。ここでng-repeatでのバインド

<div ng-repeat="item in list"> 
    <div> 
     {{item.text}} // this is the text that is changing when typing in text area 
    </div> 
    <div> 

     <textarea rows="4" cols="50" class="form-control" ng-model="item.text" required>{{item.text}} 
     </textarea> 

    </div> 
    </div> 

はあなただけで以下のようにヘッダーテキストを表示するためのJSONに要素を追加することが、あなたのJSファイルには、私の問題へのリンク http://codepen.io/ankitappuria27/pen/pyVzaj

+1

、その後、別の変数にテスト領域をバインドします。たとえば、最初に 'item.text'と同じ値を含む追加の' item.editedText'を作成します。 –

+0

JBNizetはあなたが[this](http://codepen.io/singhakash/pen/ONZooO)を行うことができると言いました。 – silentprogrammer

+0

@JBNizetデータがデータベースから来ているので、追加オブジェクトを作成したくありません。ソリューションごとに、データベースからのデータを変更する必要があります – Ankita

答えて

3

あなたのdiv内のテキストを変更したくない、ちょうど使用1時間結合のような:

{{::item.text}} 

注:あなたtextareaの内側に加えた変更は、まだあなたのモデルtext値をofcourseの影響を与えます。変更はdivには表示されません。

例:

http://codepen.io/anon/pen/VaxGOp

ドキュメント:あなたはそれが起こるしたくない場合は

https://docs.angularjs.org/guide/expression#one-time-binding

+0

@thanks ...私はこれについて知りませんでした。 – Ankita

+1

@Ankita:それは隠された機能です;)うれしくお助けできました。 – Fidel90

0

です:

app.controller('ctrl', function($scope) { 
    $scope.newitem = ''; 
    $scope.list = [ 
    { 
     "order":1, 
     "header":"Black", // header text 
     "text":"Black" 
    }, 
    { 
     "order":2, 
     "header":"Blue", // header text 
     "text":"Blue" 
    } 
    ]; 

}); 

との結合のためのHTML以下のようになります。

<div> 
     {{item.header}} 
    </div> 
    <div> 

     <textarea rows="4" cols="50" class="form-control" ng-model="item.text" required>{{item.text}} 
     </textarea> 

    </div> 
+0

データベースからデータが来ているため、追加フィールドを追加したくありません。私はその後、ユーザーに表示する前にjsonを変更する必要があります – Ankita

+0

角度スコープが双方向バインディングを介して動作し、要素がスコープフィールドにバインドされている場合、値でミラーリングされるようにはうまくいかないと思います。 –

関連する問題