【发布时间】:2014-02-27 15:31:07
【问题描述】:
我查看了所有可以找到的关于此问题的帖子,但我看不出我的代码有什么问题。
我为选择框和单选按钮创建了一个指令:
选择:
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>
【问题讨论】:
-
能否发布您发送 ajax 事件的代码以及您使用这些指令的 HTML?
-
@rob 发布了 HTML 部分。关于 ajax 部分,我宁愿不发布太多代码,所以这成为一个没有吸引力的问题 :) 我可以告诉你,我放置了一个带有值的 div,并且我在 ajax 返回时正确地看到了它们,所以我确定返回的值正确。
-
也许发布您的控制器代码也会有所帮助。在您的控制器中,服务器响应后,
data.GotWebsite是否设置为正确的值? -
@sethro 是的,所有数据都正确返回。
标签: javascript ajax angularjs