2017-07-18 15 views
0

私はまだ角度のあるデベロッパーにはノービーですが、私は問題の解決策をいくつか提案しましたが、実装方法はわかりませんでした。 複数のパラメータのオン/オフ値を制御するために、角度式で[角度ブートストラップトグル]スイッチを使用しています。JSONデータに基づいてトグルスイッチの状態

トグルの状態(ON/OFF)は、ng-model = "toggleValue"に基づいています。トグル値はブール型、つまり真、偽です。

私のデータベース(oracledb)からインポートするデータには、このパラメータ "toggleValue"が "Y"(真)または "N"(偽)として定義されています。 Y/N値をサポートするためにトグルスイッチに不平を言わせるにはどうすればよいですか?

ソリューションの考え方
1)着信JSON値をYからtrueに、Nをfalseに変換します。
2)ng-modelを、値が 'Y'の場合はtrue、それ以外の場合はfalseにバインドします。
3)Hack Angular BootstrapトグルJSスクリプト。 (最も好ましくない)

View Screenshot

フィドルリンク:https://jsfiddle.net/3gt64xz8/1/

<toggle ng-model="item.SHIP_FROM_STORE_IND" aria-label="SFS Switch" size="btn-xs"></toggle> 

答えて

0

だから私は、ソリューションのカップルは、この問題のために働くことがありました。データオブジェクトを繰り返し処理し、必要なkey:valueの値を 'Y'から 'true'に、 'N'をfalseに変換しなくても、これが最も最適な解決策であるとは必ずしも言えません。

1)NG-INIT

は、私は、これらのNG-モデルの変数を使用する必要があった分割オーバー親部門を作成し、そして使用NG-INIT許すように、次のコードでtoggleValueの値を再割り当て

$scope.init = function(value) { 
$scope.testInput= (value=='Y')? true:false; 
return $scope.testInput; 
} 

長所::私はNGリピートやページネーションを使用しておりますので、唯一のNG-モデルは

<div ng-init="item.SHIP_FROM_STORE_IND = init(item.SHIP_FROM_STORE_IND); 
item.BOPIS_ENABLED_IND=init(item.BOPIS_ENABLED_IND); 
item.BOSTS_ENABLED_IND=init(item.BOSTS_ENABLED_IND)"> 
コントローラで

Init関数にはない表現、現在のページのcope要素が変更され、より効率的になり、反復的に他のものがページ変更時に変更されます。
短所:私のビューには、toggleValueパラメータ(true/false)に基づいてレコードをフィルタリングできる検索ボックスもあります。フィルタが適用されると、現在のページ要素だけがフィルタ処理され、「Y」または「N」値のままであるすべての要素がフィルター処理されるわけではありません。

2)オブジェクトを反復し、これが最も効率的かなり単純かつ明白な解決策であるが、明らかにされていないデータ

をフェッチしながら、コントローラの値を入れ替えます。

$scope.items = storeFactory.getRecords().query(
    function(response) { 
     $scope.items=response; 
     $scope.totalItems = $scope.items.length; 
     for (var i=0, len=$scope.totalItems; i<len; i++) { 
      $scope.items[i].toggleValue = ($scope.items[i].SHIP_FROM_STORE_IND=='Y')? true:false; 
     } 

    }, 
    function(response) { 
     $scope.waitMessage = "Error: "+response.status + " " + response.statusText; 
    }); 

同様に、サーバーに戻った変更/更新中にデータを元に戻すことができます。

+0

私はこの解決策が問題を解決すると信じていますが、ハックです。私はこれを一時的に回答として受け入れており、他に提案されている解決方法があれば変更されます。 – shubhammakharia

関連する問題