Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ng选择返回对象而不是字符串中的选项_Javascript_Angularjs_Ng Options - Fatal编程技术网

Javascript ng选择返回对象而不是字符串中的选项

Javascript ng选择返回对象而不是字符串中的选项,javascript,angularjs,ng-options,Javascript,Angularjs,Ng Options,我正在努力学习角度,我在非常基本的步骤。我已经搜索过了,但是没有找到任何可以帮助我的东西 我对ng选项有问题。当我点击触发添加剑(剑)的按钮时,我希望它将$scope.elems.object.name插入{{swarm.elem}},但我收到的是$scope.elems.object。 更好的解释是,剑.elem显示的是{“名称”:“水”,“跳动”:“火”}而不是'Water'。我可以使用剑.elem.elem,但我可以看出这里有问题 奇怪的是:我的选择菜单显示了正确的值 谢谢你的帮助,如果有

我正在努力学习角度,我在非常基本的步骤。我已经搜索过了,但是没有找到任何可以帮助我的东西

我对ng选项有问题。当我点击触发
添加剑(剑)
的按钮时,我希望它将
$scope.elems.object.name
插入
{{swarm.elem}}
,但我收到的是
$scope.elems.object
。 更好的解释是,
剑.elem
显示的是
{“名称”:“水”,“跳动”:“火”}
而不是
'Water'
。我可以使用
剑.elem.elem
,但我可以看出这里有问题

奇怪的是:我的选择菜单显示了正确的值

谢谢你的帮助,如果有关于这个问题的答案,我很抱歉找不到

index.html

<tr ng-repeat="sword in swords">
    <td>{{sword.name}}</td>
    <td>{{sword.attack}}</td>
    <td>{{sword.desc}}</td>
    <td>{{sword.elem.name}}</td>
</tr>
...
<select class="form-control" ng-model="sword.elem" 
    ng-options="elem.name for elem in elems">
    <option value="">Selecione uma elem</option>
</select>
<button class="btn btn-primary btn-block" ng-click="addSword(sword)" 
    ng-disabled="!sword.name || !sword.elem || !sword.attack">Add Sword</button>

据我所知,你想将所选剑添加到你的剑列表中。你需要使用

标记:

<select class="form-control" ng-model="sword" 
    ng-options="elem as elem.name for elem in elems">
    <option value="">Selecione uma elem</option>
</select>
<button class="btn btn-primary btn-block" ng-click="addSword(sword)" 
    ng-disabled="!sword">Add Sword</button>

乌马埃利姆精选酒店
加剑

嗯,我试过一些东西。读了这些文件,也弄不明白

我想要的是将ng选项选择传递到ng模型“剑术元素”中。ng选项选择由两个对象提供:

        $scope.elems = [
        {name: "Fire", beats: "Earth"},
        {name: "Water", beats: "Fire"}
    ];
我希望我的ng model='Swarm.elem'收到$scope.elems.name。 提交我的表单后,将创建以下对象:

{"name":"Stack Question",
"attack":"66",
"desc":"You shall answer this sword.",
"elem": {"name":"Fire","beats":"Earth"}
}
但我试图接受这样的信息:

{"name":"Stack Question",
"attack":"66",
"desc":"You shall answer this sword.",
"elem": "Fire"}
}

我目前的解决方法是打印{{swarm.elem.name}},而不是只打印{{swarm.elem}。

这与我使用的代码相同,只是模型是'swarm'而不是'swarm.elem'。有了这个,我将绑定整个表单,只提交select输入。不管怎样,我试过了,但被窃听了。无论如何,谢谢你/@RodrigoSouza仔细看,不一样
elem作为elem.name用于
vs只是
elem.name用于
。您可以继续在
ng型号中使用
swarm.elem
@Claies,谢谢。我的错。我已经更改了那段代码。同样的结果。
{"name":"Stack Question",
"attack":"66",
"desc":"You shall answer this sword.",
"elem": "Fire"}
}