我有一个单选按钮组,我试图将其设置为默认值 2,但我得到:
类型错误: 无法读取未定义的属性"评级无线电">
这是我的代码:
<div class="form-group" ng-controller="RadioController">
<label for="commentstarrating" class="col-xs-12 col-sm-2 control-label">Rating</label>
<div class="col-sm-10">
<div class="radio-inline">
<label><input type="radio" name="ratingradio" value="1" ng-model="feedback.ratingradio">1</label>
</div>
<div class="radio-inline">
<label><input type="radio" name="ratingradio" value="2" ng-model="feedback.ratingradio">2</label>
</div>
</div>
</div>
和一些JavaScript在一个单独的文件中
.controller('DishCommentController', ['$scope', function($scope) {
$scope.feedback.ratingradio=2;
console.log($scope.feedback.ratingradio);
//redacted the function for brevity
错误在
$scope.feedback.ratingradio=2;
控制台显示相同
console.log($scope.feedback.ratingradio);
我无法理解,因为如果我选择一个值然后提交我的表单,则单选按钮值应分配给我将发送到服务器的 JSON 对象。当然,一旦我得到这个修复!
更改
$scope.feedback.ratingradio=2;
自
$scope.feedback = {
ratingradio:2
};
你不能在你的角度中定义$scope.feedback.ratingradio=2
。你能定义$scope.feedback=2
吗?那会起作用。显然你需要ng-model="feedback"
这里首先是html和Java脚本中使用的控制器是不同的。第二件事是ng-model,你对两个不同的字段使用相同的名称。
供您参考 :
控制器在 Angular 中的作用是通过$scope将数据暴露给我们的视图,并向包含业务逻辑的$scope添加函数以增强视图行为。
此外,使用 ng-model 指令,您可以将输入字段的值绑定到 AngularJS 中创建的变量。
参考链接 : https://docs.angularjs.org/guide/controller