我正在使用AngularJS应用程序,该应用程序可帮助配置有关美国各州的信息报告。信息的类型无关紧要,但是上下文总是很好的。
因此,我收集了美国各州的数据,这些州的频率决定了这些报告的创建和发送时间。这些频率分为三组,类似于Microsoft Outlook日历中的会议次数。实际上,它们是完全相同的选项:“每日”,“每周”和“每月”。这三个选项还具有子选项,例如“每天”的“每隔几天”或“每周工作日”,以及“每周”的“每周X,Y,Z天的每隔几周”,等等。
这些选项的显示方式是通过ng-reapeat创建的单选按钮:
<div id="frequencyOptions" class="btn-group col-md-3 showRightBorder">
<div id="{{option.name | lowercase}}FrequencyContainer"
data-ng-repeat="option in stateConfig.frequencyOptions | orderBy:'position'">
<label class="control-label">
<input id="{{option.name | lowercase}}Frequency" ng-value="option" type="radio"
data-ng-model="$parent.selectedState.frequencyOption" />
{{option.name}}
</label>
</div>
</div>
为了明确起见,“ stateConfig”对象是此HTML页面的角度控制器,是从中加载选项的位置,而“ frequencyOptions”是选项本身。
我正在寻找的理想结果是根据当前选定的州的频率选项('$ parent.selectedState.frequencyOption')选择适当的单选按钮,然后当该选择更改时,新的选择应反映在所选内容中状态的frequencyOption属性。
到目前为止,我已经尝试了一些不同的方法。一个是使用选项的ID作为值和模型,但是当我尝试更改所选选项并将更改保存到我的关系数据库(通过Spring&Hibernate 4服务后端)时,更新相应的frequencyOptions Java对象存在问题仅带有ID。
它好像我做的事情很正确的基础上,其他无数的线程我读过,但仍然在被选择的状态已经有一个frequencyOption属性设置中获得所选择的无线电没有运气,以正确绑定。
以下是通过ng-repeat创建单选按钮的频率选项的JSON:
[{
"id": 780,
"description": "Daily frequency. Used for sending reports every X number of days, or every weekday (Mon-Fri).",
"name": "Daily",
"position": 1
},
{
"id": 781,
"description": "Weekly frequency. Select days of the week to send reports on those days every X number of weeks.",
"name": "Weekly",
"position": 2
},
{
"id": 782,
"description": "Monthly frequency. Select the day of the month to send a report every X number of months.",
"name": "Monthly",
"position": 3
}]
这是一个State的frequencyOption属性的示例:
"frequencyOption": {
"id": 780,
"description": "Daily frequency. Used for sending reports every X number of days, or every weekday (Mon-Fri).",
"name": "Daily",
"position": 1
}
我非常有信心,问题出在我的HTML中以及我如何表示我的角度模型或ng-value的值(ng-value =“ option”),我只是不确定它到底是什么我想念的
任何帮助是极大的赞赏。谢谢!!
您的代码看起来不错。它对我来说是原样的:
var myApp = angular.module('myApp', []);
function MyCtrl($scope) {
$scope.stateConfig = {
frequencyOptions: [{
"id": 780,
"description": "Daily frequency. Used for sending reports every X number of days, or every weekday (Mon-Fri).",
"name": "Daily",
"position": 1
}, {
"id": 781,
"description": "Weekly frequency. Select days of the week to send reports on those days every X number of weeks.",
"name": "Weekly",
"position": 2
}, {
"id": 782,
"description": "Monthly frequency. Select the day of the month to send a report every X number of months.",
"name": "Monthly",
"position": 3
}]
};
$scope.selectedState = {
frequencyOption: $scope.stateConfig.frequencyOptions[0]
};
}
<html ng-app>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-controller="MyCtrl">
<div id="frequencyOptions" class="btn-group col-md-3 showRightBorder">
<div id="{{option.name | lowercase}}FrequencyContainer" data-ng-repeat="option in stateConfig.frequencyOptions | orderBy:'position'">
<label class="control-label">
<input id="{{option.name | lowercase}}Frequency" ng-value="option" type="radio" data-ng-model="$parent.selectedState.frequencyOption" />{{option.name}}
</label>
</div>
</div>
<br>Selected Frequency:
<br>{{selectedState.frequencyOption}}
</div>
</html>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句