Javascript 从ng repeat访问父控制器

Javascript 从ng repeat访问父控制器,javascript,angularjs,Javascript,Angularjs,我一直在学习angular,在尝试访问父控制器时发现了这一点 我希望使用$parent从ng repeat内部的父控制器访问相同的变量,因此当按下其中一个复选框时,应该更新所有变量,但这不是真的。为什么 <div ng-app ng-controller="ParentCtrl"> <ul> <li ng-repeat="city in cities">{{city}}<input type="ch

我一直在学习angular,在尝试访问父控制器时发现了这一点

我希望使用$parent从ng repeat内部的父控制器访问相同的变量,因此当按下其中一个复选框时,应该更新所有变量,但这不是真的。为什么

 <div ng-app ng-controller="ParentCtrl">
           <ul>
               <li ng-repeat="city in cities">{{city}}<input type="checkbox" ng-checked="$parent.somevar" /></li>
            </ul>
        </div>

  • {{city}

在这种情况下,您需要使用
ngModel
(双向绑定)而不是
ngChecked
(单向绑定):


在这种情况下,您需要使用
ngModel
(双向绑定)而不是
ngChecked
(单向绑定):


您没有为视图绑定模型,该模型可以反映更改。当前代码只读取模型(在本例中为
somevar
)状态。使用
ng型号
代替选中的
ng型号
。角度传感器将处理其余部分:

HTML

<div ng-app ng-controller="ParentCtrl">
       <ul>
           <li ng-repeat="city in cities">{{city}}<input type="checkbox" ng-model="$parent.somevar" /></li>
        </ul>
    </div>

您没有为视图绑定模型,该模型可以反映更改。当前代码只读取模型(在本例中为
somevar
)状态。使用
ng型号
代替选中的
ng型号
。角度传感器将处理其余部分:

HTML

<div ng-app ng-controller="ParentCtrl">
       <ul>
           <li ng-repeat="city in cities">{{city}}<input type="checkbox" ng-model="$parent.somevar" /></li>
        </ul>
    </div>

首先,您的jsiddle定义了一个ChildCtrl,但它没有任何效果,因为您从未使用过它。你可以删除它

其次,如ngChecked文档中所述,ngChecked和ngModel之间存在差异:

如果您希望同时选中/取消选中所有复选框,那么您可能希望选择ngModel而不是ngChecked

您的问题并不清楚您实际上想做什么,但下面是JSFIDLE的一个分支,它演示了通过$parent变量进行数据共享:

它只执行以下操作:

<li ng-repeat="city in cities">{{city}}<input type="checkbox" ng-model="$parent.somevar" /></li>
  • {{city}

  • 为了说明这两个概念。

    首先,您的JSFIDLE定义了一个ChildCtrl,但它没有任何效果,因为您从未使用过它。你可以删除它

    其次,如ngChecked文档中所述,ngChecked和ngModel之间存在差异:

    如果您希望同时选中/取消选中所有复选框,那么您可能希望选择ngModel而不是ngChecked

    您的问题并不清楚您实际上想做什么,但下面是JSFIDLE的一个分支,它演示了通过$parent变量进行数据共享:

    它只执行以下操作:

    <li ng-repeat="city in cities">{{city}}<input type="checkbox" ng-model="$parent.somevar" /></li>
    
  • {{city}

  • 来说明这两个概念。

    我在角度方面也完全是新手,所以我可能是错的。但是我很少看到。。。代码中的内容。首先,根本不使用
    ChildCtrl
    。其次,看起来只有
    ng model
    指令对复选框应用了双向绑定。但是
    ng checked
    仅用于添加|删除
    checked
    属性


    而且

    我在角度方面也完全是新手,所以我可能是错的。但是我很少看到。。。代码中的内容。首先,根本不使用
    ChildCtrl
    。其次,看起来只有
    ng model
    指令对复选框应用了双向绑定。但是
    ng checked
    仅用于添加|删除
    checked
    属性


    先生,请使用ng模型参考母公司的范围。 以下是我为您创建的演示[演示][1]

    [1]: http://jsfiddle.net/nwg7bwLx/
    

    先生,请使用ng模型参考母公司的范围。 以下是我为您创建的演示[演示][1]

    [1]: http://jsfiddle.net/nwg7bwLx/
    

    哦,对不起,夫人!我来自印度,所以不熟悉这些名字…:-)哦,对不起,夫人!我来自印度,所以不熟悉这些名字…:-)