我想我在这里有一些特殊的代码,因为我可以谷歌所有我的问题“太简单”,它也没有帮助自己来解决方案,可悲的是。 我收到了一个包含2个收音机的单选按钮组。我正在迭代来自后端的“类型”数据以创建单选按钮。 我的问题是数据绑定:当我想编辑一个对象时,它的“类型”设置正确,但未被视图注册,因此它不会选择所需的选项。AngularJS:如何把正确的模型重复单选按钮
Follwing我的情况:
后端提供我这是 “类型串”:
[
{"text":"cool option","enumm":"COOL"},
{"text":"option maximus","enumm":"MAX"}
]
HTML代码:
<span ng-repeat="type in typeList track by type.enumm">
<input
type="radio"
name="type" required
ng-model="myCtrl.object.type"
ng-value="type">
{{type.text}}
</span>
一些解释
我不想要使用“裸体”文本,我想使用索姆一种标识符 - 在这种情况下它是一个枚举。选择的值应该是整个“类型”,而不仅仅是“type.text”,因为后端需要类型,而不是简单的String。 因此,所有我做这始终是一个包啄,该type.text对于像格式化/ internationlized文本等
预选工作在控制器设置这样的:this.object.type = typeList[0];
第一个单选按钮已经精选,精彩。
但是编辑对象时为什么不选中。我在HTML中用{{myCtrl.object.type}}
做了一个“日志”,结果是{"text":"cool option","enumm":"COOL"}
。与预选时相同。我已经使用选择输入使用相同的“技术”,并且工作正常。我还发现一些谷歌结果说“由于父/子范围使用$父母”。但是1)我没有弄明白,2)认为这不是问题,因为我使用的是控制器范围而不是$ scope,或者这种想法是错误的?
它可能被解释得很糟糕,如果是这样,对不起,但我希望有人1)得到我想要的,2)知道它的解决方案。
谢谢!
首先,感谢您的努力!不幸的是你的笨蛋没有帮助我,但我试图用你的想法来获取正确的数组元素。 我很高兴,这**工作**!这既好又烦,为什么我不能用我已经填满的模型?因为我现在做的是这样的: 'if(!self.object.type){0} {0} {0} self.object.type = $ scope.typeList [0]; } else { self.object.type = _.filter($ scope.typeList,self.object.type)[0]; }' 但没关系,因为它的工作对我来说已经足够了:) 谢谢! – BAER 2014-08-30 08:03:18