Angularjs设置检查无线电不工作

时间:2018-03-27 06:13:11

标签: angularjs angularjs-ng-change

我有3个单选按钮:

            <label ng-repeat="mode in opMode.groupMode" class="radio-inline" title="{{mode.title}}">
                <input id="rd{{mode.id}}" type="radio" class="panel-load-radio" ng-model="opdtMode.groupMode"
                       name="inlineRadioOptions" value="{{mode.id}}" 
                       ng-change="changeOpdtMode(mode.id, '{{opdtMode.groupMode}}')">
                {{mode.name}}
            </label>

这是Angularjs代码:

$scope.opMode = { groupMode: [
   { name: "ModuleType", title: "Load processes by Module type", id: "ModuleType", isDefault: false },
   { name: "OpGroup", title: "Load processes by Operation group", id: "OpGroup", isDefault: true },
   { name: "MachineType", title: "Load processes by Machine type", id: "MachineType", isDefault: false  }
]};

如果isChange = true,请显示确认mbox。如果用户单击取消,请设置oldValue并检查上一个无线电。我写了这个。然而,它没有按预期工作:

$scope.changeOpdtMode = function (newValue, oldValue) {
    if(isChange){
        const msg = getMsgById(29, msgLostData);
        const r = confirm(msg.value);
        if (r === true) {
            const lang = $scope.layoutLang.selectedLang;
            loadLayout(null, lang, newValue);
            window.isChange = false;
        } else {
            $scope.opdtMode.groupMode = oldValue;
        }
    }else{
        const lang = $scope.layoutLang.selectedLang;
        loadLayout(null, lang, newValue);
    }     
}

1 个答案:

答案 0 :(得分:2)

研究2小时后: 我在这里发布我的答案,每个人都可以看到同样的问题。

Layout.xml

需要移除<label ng-repeat="mode in opMode" class="radio-inline" title="{{mode.title}}"> <input type="radio" class="panel-load-radio" ng-value="mode.id" ng-model="$parent.opdtMode" ng-change="changeOpdtMode(mode.id, '{{opdtMode}}')"> {{mode.name}} </label> 并将name="inlineRadioOptions"添加到模型中。

$parent