我查看了有关此问题的所有帖子,但我看不出我的代码有什么问题。
我为选择框和单选按钮创建了一个指令:
选择
app.directive("selectBox", function () {
return {
replace: true,
scope: {
fieldobj: "="
},
template: '<div ng-show="fieldobj.IsRelevant"><span>{{fieldobj.Title}}: </span>' +
'<select ng-model="fieldobj.Value" ng-options="option for option in fieldobj.Options" ng-class="{fieldError : fieldobj.Errors.length > 0}"/></div>'
};
});
单选按钮:
app.directive("radioButton", function () {
return {
replace: true,
scope: {
fieldobj: "="
},
template: '<div ng-show="fieldobj.IsRelevant"><span>{{fieldobj.Title}}: </span>' +
'<input type="radio" value="true" ng-model="fieldobj.Value" ng-class="{fieldError : fieldobj.Errors.length > 0}"/>Yes' +
'<input type="radio" value="false" ng-model="fieldobj.Value" ng-class="{fieldError : fieldobj.Errors.length > 0}"/>No</div>'
};
});
我的问题是,在我选择一个值(在任一控件中)并向服务器发出ajax之后,当数据返回时(我在fiddler / chrome调试器中看到数据返回正常)输入元素为空,即,没有选择单选按钮,选择框的值为0(空选择)。
如果我在这里编写错误的代码并且您有更好的建议,那很好,但如果有人能够解释为什么输入变得“空”,我也会感激。
编辑:这是单选按钮的html部分,例如:
<div radio-button fieldobj="data.GotWebsite"></div>
答案 0 :(得分:0)
我已经明白了。
我必须在输入元素上将value="true"
更改为ng-value="true"
。
ajax返回的JSON
返回true
/ false
单选按钮,我的猜测是ng-value="true"
评估表达式,从而解决问题。