0

テキスト ボックスと選択項目、およびいくつかのラジオ ボタンを備えたエントリ フォームがあります。ユーザーがフォームに入力した後、必要に応じて送信された最終フォームを印刷できる確認ページにユーザーを誘導したいと考えています。ただし、選択フィールドをドロップダウンとして表示するのではなく、単純なテキスト ボックスとして表示したいと考えています。

例として、State の選択には ng-options="s.value as s.text for s in states"> があり、s.value は「WA」、s.text は「Washington」の場合があります。

確認ページでは、「Washington」というテキストが入力されたテキスト ボックスのみを表示したいと考えています。

これを行う最も角度のある方法は何ですか?

コントローラーでこの関数を作成することになりました:

   $scope.getLookupText = function(lookupValues, value) {
        if (lookupValues == undefined) return '';
        for (var i = 0; i < lookupValues.length; i++)
            if (lookupValues[i].value == value)
                return lookupValues[i].text;
        return '';
    }

次のようにテンプレートから呼び出します。

input id="状態" ng-value="getLookupText(状態、インシデント.CustState)"

4

1 に答える 1

0

選択の結果を両方のコントローラー (サービス) からアクセス可能なモデルに格納し、2 番目のコントローラーでそのモデルのテキスト ボックスに入力します。

コントローラ 1: myservice が注入されます

$scope.selector = myservice.selection;

ページ1:

<select ng-model='selector'>...</select>

コントローラ 2: myservice が注入されます

$scope.result = myservice.getStateTextByValue(myservice.selection);

またはここまたはサービスでアンダースコアを使用する

$scope.result = _(myservice.state).find(function(s) { return s.value == myservice.selection; }).text;

ページ2:

<div>{{result}}/div>
于 2013-10-15T23:17:50.077 に答える