Javascript AngularJS ng模型将对象转换为字符串
我的HTML文件中包含以下内容:Javascript AngularJS ng模型将对象转换为字符串,javascript,angularjs,Javascript,Angularjs,我的HTML文件中包含以下内容: <td style="width: 200px;"> <span ng-repeat="list in listGroups"> <label for="{{ list.description }}" />{{ list.description }}</label> <input ng-model="$parent.listGroup"
<td style="width: 200px;">
<span ng-repeat="list in listGroups">
<label for="{{ list.description }}" />{{ list.description }}</label>
<input ng-model="$parent.listGroup" id="listGroup-{{ list.value }}" name="listGroups" value="{{ list }}" type="radio" />
</span>
</td>
单击单选按钮时,列表组(在ng模型中设置)变为,例如:
{"description":"New by Genre","group":"genre","type":"new"}
当我查看类型为$scope.listgroup的列表组时,我发现它现在是一个字符串
因此,我无法在HTML页面其余部分的其他绑定中访问它的属性
在本例中,我希望ng show=“listGroup.group==”流派“
这里发生了什么,更重要的是,我如何让它做我想让它做的事情,也就是保持对象为对象
谢谢大家
Dave为什么要将对象作为ng模型?这就是导致listGroup变量变成字符串的原因,因为ng模型只处理字符串。如果您有一个要与ng模型一起使用的复杂对象,那么应该创建一个指令并实现一个解析器和格式化程序,如下所示:问题在于输入的
值
属性只接受字符串,而不接受对象(选中)。执行此操作时:value=“{{list}}”
,基本上就是在执行input.value=list.toString()
一种可能的解决方法是使用
ng repeat
指令的$index
。示例:现在可以使用ng值
范例
您也可以使用JSON.parse(字符串中的对象),但我想我更喜欢@bmleite解决方案。只是把它扔出去--万一有人有不同的用例 另外,不要使用$parent.
,它会在将来给您带来问题。
{"description":"New by Genre","group":"genre","type":"new"}