发布表单时,使用ng-option进行角度选择会发送索引而不是值

Joh*_*ann 5 post html-select angularjs

当我发布带有Angular select的表单时,它会发送所选选项的数组索引,而不是其值.我需要发送字符串,因为服务器不知道这些索引.我怎样才能解决这个问题?

来自jsfiddle.net/2SuZG:

<form method="post" action="/my/post/endpoint">
    <select name="resource" ng-options="r for r in ['a', 'b']"
            ng-model="selectedResource"></select>
    <button type="submit">Save</button>
</form>
Run Code Online (Sandbox Code Playgroud)

您可以从小提琴中的控制台输出中看到发布的表单正在发送resource=0,但我想要resource='a'.(注:在我的小提琴,我是序列化的形式,但是这仅仅是看到它会是什么张贴在我的应用我其实张贴到实际的端点.)

这类似于这个问题,但答案是"不要担心价值".但在我的情况下,我发布了一个表格,所以我关心价值.我必须在这里遗漏一些非常基本的东西.谢谢!

luc*_*uma 6

您不应该使用jquery序列化表单,因为您拥有$ scope中的所有相关数据,这就是您要序列化的内容(某些子集或某些您要使用$ http或$ resource发布的对象) .如果您使用自己的方法设置了死区,请使用数据元素的真实名称创建隐藏输入:http: //jsfiddle.net/2SuZG/1/

<select name="resourceTemp" ng-options="r for r in ['a', 'b']"
        ng-model="selectedResource"></select>
<input type="hidden" name="resource" value="{{selectedResource}}" >
Run Code Online (Sandbox Code Playgroud)

我不推荐这个,但这是你想要做的.