angularjs:如何从聚合范围变量刷新HTML

时间:2014-10-04 14:26:46

标签: angularjs angular-ngmodel

3选择绑定到search.accident.XXXXX.id的ng-model控制器范围变量用于从数据结构中搜索。 虽然第一个HTML代码段没有任何麻烦,但无论变量如何变化,第二个HTML代码段都会被卡住。 我想到了一种更新'问题:我是否需要提示angularjs关于数据结构的聚合性质?怎么样?

工作代码段如下:

<h2>
    «&nbsp;{{search.accident.symptom.id}}&nbsp;»
    observé(es) sur «&nbsp;{{search.accident.organ.id}}&nbsp;» 
    à l'étape «&nbsp;{{search.accident.stage.id}}&nbsp;»
</h2>

非工作片段如下:

<h2>
    «&nbsp;{{search.accident.symptom.displayName}}&nbsp;»
    observé(es) sur «&nbsp;{{search.accident.organ.displayName}}&nbsp;» 
    à l'étape «&nbsp;{{search.accident.stage.displayName}}&nbsp;»
</h2>

[编辑]

以下是选择代码:

<form>
    <table>
        <tbody>
            <tr>
                <td style="width: 40%">
                    Stade<br>
                    de la plante<br>
                    <select 
                        ng-options="s.id as s.displayName for s in stages" 
                        ng-model="search.accident.stage.id">
                    </select>
                </td>
                <td style="width: 20%">
                    Organe<br>
                    concerné<br>
                    <select
                        ng-options="o.id as o.displayName for o in organs | filter:accidentsSearch(search.accident.stage, null, null, accidentsDiagnosticsMenu)" 
                        ng-model="search.accident.organ.id">
                    </select>
                </td>
                <td>
                    Symptôme<br>
                    observé<br>
                    <select
                        ng-options="s.id as s.displayName for s in symptoms | filter:accidentsSearch(search.accident.stage, search.accident.organ, null, accidentsDiagnosticsMenu)" 
                        ng-model="search.accident.symptom.id">
                    </select>
                </td>
            </tr>
        </tbody>
    </table>
</form>

2 个答案:

答案 0 :(得分:0)

<select ng-options="s.id as s.displayName for s in stages" 
                    ng-model="search.accident.stage.id">
</select>

以上含义:显示一个显示阶段displayName的选择框。无论何时进行选择,都要使用所选阶段的search.accident.stage.id更新字段id

因此,每当更改选择时,search.accident.stage将保持不变,除了其ID。你想要的是

<select ng-options="s as s.displayName for s in stages" 
                    ng-model="search.accident.stage">
</select>

表示:显示一个显示阶段displayName的选择框。无论何时进行选择,都要使用所选阶段更新字段search.accident.stage

答案 1 :(得分:0)

感谢您查看代码。只需将您的选择更改为:

<select 
    ng-options="s.displayName for s in stages" 
    ng-model="search.accident.stage">
</select>

如果在ng-options中省略了select子句,则绑定默认为对象本身(您的s),因此您声明正在选择s(使用s.displayName作为选择标签) )将存储在您的search.accident.stage中。然后,您只需要在任何想要显示它们的地方检索它们。