我正在创建一个类似于网格的日历,它使用两个ng-repeats生成1到31之间的数字。网格的每个元素都是一个单选按钮,其值我想进入控制器。
例如,用户点击' 12',该值会存储在某处,点击提交后会传播到控制器。
问题是我无法读取所检查元素的值。
代码:
<div data-toggle="buttons">
<div class="row" ng-repeat="date in dates track by $index" ng-if="$index % 5 == 0">
<label ng-class="{'btn-online': isOnline(i+1), 'btn-paper': isPaper(i+1)}" class="singleDate btn btn-default col-no-gutter col-xs-2 letter-box"
ng-repeat="i in [$index, $index + 1, $index + 2, $index + 3, $index + 4]"
ng-if="dates[i] != null">
<input type="radio" name="dates" id="date-{{i+1}}" ng-model="$parent.dueDate" ng-value="{{date[i]}}" class="date radio radio-primary">{{dates[i]}}
</label>
</div> <!--row div ends here -->
{{dueDate}} <!--no output here as well-->
</div>
<button type="submit" ng-click="changeDueDate(dueDate)" class="btn btn-block btn-default">Change Payment Due Date</button>
答案 0 :(得分:0)
<!-- instead bind to objects -->
<button type="submit" ng-click="changeDueDate(obj.dueDate)">
Change Payment Due Date
</button>
每个ng-repeat
和ng-if
都会添加新的范围和层次结构。而不是计算层次结构的级别,使dueDate
成为对象的属性obj.dueDate
。然后原型继承将正确地发挥它的魔力。有关详细信息,请参阅The Nuances of Scope Prototypal Inheritance。