Ajular之后AngularJS Select和Radio Buttons失去了绑定

时间:2014-02-27 15:31:07

标签: javascript ajax angularjs

我查看了有关此问题的所有帖子,但我看不出我的代码有什么问题。

我为选择框和单选按钮创建了一个指令:

选择

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>

1 个答案:

答案 0 :(得分:0)

我已经明白了。

我必须在输入元素上将value="true"更改为ng-value="true"

ajax返回的JSON返回true / false单选按钮,我的猜测是ng-value="true"评估表达式,从而解决问题。