Javascript 不';t工作单选按钮angularjs

Javascript 不';t工作单选按钮angularjs,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,但当我选中单选按钮不改变ng model=“title”时,我遇到了问题 我修改了很多代码,但我找不到解决方案。有人能帮忙吗?我想这里有个问题? 有人能帮忙解决这个问题吗? 我有密码: <div class="container"> <label data-ng-repeat="option in dbQuestion"> <input type="radio" name="form-field" ng-model="title" valu

但当我选中单选按钮不改变ng model=“title”时,我遇到了问题 我修改了很多代码,但我找不到解决方案。有人能帮忙吗?我想这里有个问题? 有人能帮忙解决这个问题吗? 我有密码:

<div class="container">
    <label data-ng-repeat="option in dbQuestion">
        <input type="radio" name="form-field"  ng-model="title" value="{{option.title}}" ng-checked="$index == 0" />
        {{option.title}}
    </label>
    <span>{{title}}</span>
</div>

您需要使用
$parent.title
而不是
title
,如下所示:

<input type="radio" name="form-field"  ng-model="$parent.title" value="{{option.title}}" ng-checked="$index == 0" />


ng repeat创建自己的作用域,为了将值从子作用域分配给父作用域,我们需要使用$parent

新AngularJS开发人员通常没有意识到
ng repeat
ng switch
ng view
ng include
ng if
都会创建新的子作用域,因此当涉及这些指令时,问题往往会出现。(有关问题的快速说明,请参阅。)

通过遵循“最佳实践”,可以很容易地避免原语的这个问题–观看3分钟。Misko用
ng开关
演示了原语绑定问题

在模型中使用“.”将确保原型继承发挥作用。所以,使用

<label data-ng-repeat="option in dbQuestion">
    <input type="radio" name="form-field"
           ng-model="title.selected" 
           value="{{option.title}}" 
           ng-checked="$index == 0" />
    {{option.title}}<br>
</label>
<p>Selected - {{title.selected}}</p>
有关详细信息,请参阅

角度模块(“应用程序”,[]) .controller(“ctrl”,函数($scope){ $scope.title={所选:'}; $scope.dbQuestion=[{ 标题:“问题1”, 描述符:“描述1”, 答复:[{ 第1项:“第1项”, 值:true }, {item2:“item2”,值:true}, {item3:“item3”,值:true}, { 第四项:“第四项”, 值:true } ] }, { 标题:“问题5”, 描述符:“描述5”, 答复:[{ 第1项:“第1项”, 值:true }, {item2:“item2”,值:true}, {item3:“item3”,值:true}, { 第四项:“第四项”, 值:true } ] }, ]; });

{{option.title}}
选定-{{title.Selected}


angular标签应该移除-这是angular 2..4遵循黄金法则:在ng模型中始终添加一个点。可能重复。使用
$parent
是一个更严重问题的症状。寻求更强大的解决方案。感谢您的评论:)我的理解是:ng repeat创建自己的作用域,为了将值从子作用域分配给父作用域,我们需要使用$parent,请让我知道您的看法。遵循“最佳实践”可以轻松避免原语问题当然–观看3分钟的节目。Misko用
ng开关
演示了原语绑定问题。
$parent
方法缺乏健壮性。如果模板更改为在控制器和
ng model
指令之间具有更多作用域,该怎么办?无论有多少指令(如
ng repeat
ng switch
ng if
ng view
ng include
等)介入,将
ng model
绑定到对象的属性都会起作用。有关更多信息,请参阅。感谢分享:)以上发布的答案仅在发布的问题上下文中是一个过于简化的版本。我完全同意(并且有点害怕!)您关于此解决方案健壮性的观点:)
<label data-ng-repeat="option in dbQuestion">
    <input type="radio" name="form-field"
           ng-model="title.selected" 
           value="{{option.title}}" 
           ng-checked="$index == 0" />
    {{option.title}}<br>
</label>
<p>Selected - {{title.selected}}</p>
app.controller("ctrl", function($scope) {
    $scope.title = { selected: ''};
    $scope.dbQuestion = [{ /*..*/ }];
});