0

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

例如,State 的 select 有一个 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, event.CustState)"

4

1 回答 1

0

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

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