2017-01-03 2 views
2

angleのデータバインディングでテキストボックスとドロップダウンを含むdiv要素の順序を変更するにはどうすればよいですか。 divの順序はそれに応じて変更する必要がありますユーザーのログインは、ユーザーの種類がAならdiv Aが上になります。ユーザーの種類がBならばdiv Bが上になり、div要素が下になります。純粋にAngularJSで作られています。 AngularJSコントローラでAngularJSのdiv要素の順序を入れ替える方法は?

<div id="A"> A <input type="text" ng-model="Model.AName" disabled /></div> 
<div id="B"> B <input type="text" ng-model="Model.BName" disabled /></div> 
<div id="C"> C <input type="text" ng-model="Model.CName" disabled /></div> 

:ここ

はHTMLです

$scope.orderArr = [{ "A": 2}, { "B": 3 }, { "C": 1 }]; 

結果は次のようになります。 C B

+1

ユーザータイプは「C」ですか? –

+0

A、B、CはSuperAdmin、Admin、Userなどのユーザタイプです – HarshalY

+0

orderArrはこのようにする必要がありますか、 '[{type:" A "、order:2}、{ "B"、order:3}、{type: "C"、order:1}]と入力します。これはそれほど複雑ではないでしょう。 – JanP

答えて

3

あなたは、配列を入力を表し作成する必要が順序を管理します。

$scope.inputs = [ 
    { 
    name: 'AName', 
    order: 1 
    }, 
    { 
    name: 'BName', 
    order: 2 
    }, 
    { 
    name: 'CName', 
    order: 0 
    } 
]; 

そして、ループを使ってそれを表示:

<div id="A" ng-repeat="input in inputs | orderBy: 'order'"> 
    {{ input.name }} 
    <input type="text" disabled ng-model="Model[input.name]"> 
</div> 

、プロパティorderを変更して、コントローラの順序を管理することができます。このように。 条件文を作成することができます。条件文は、権限の設定に応じて入力の順序を設定します。

+0

これは意味をなさない!しかし、私が必要としたのは、それに応じてデータをバインドする必要がある複数の入力テキストとドロップダウンがあるということです。 – HarshalY

+0

入力のng-modelを見ると、変数を名前 'name'で束縛することができます。 – Jarek

関連する問題