使用Angular如何在文本框中显示通常在选择中显示的内容

时间:2013-10-15 23:01:25

标签: angularjs select textbox

我们有一个完整的条目表格,文本框和选择和一些单选按钮。在用户填写表单后,我们希望将他们引导到确认页面,如果需要,他们可以打印提交的最终表单。但是,我们不希望将选择字段显示为下拉列表,而是显示为简单的文本框。

例如,select for 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 '';
    }

并从模板中调用它:

输入id =“state”ng-value =“getLookupText(states,incident.CustState)”

1 个答案:

答案 0 :(得分:0)

将select的结果存储在两个控制器(服务)均可访问的模型中,然后在第二个控制器中填充该模型的文本框。

控制器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>