首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AngularJS - ngmodel中的ngrepeat不更新(“虚线”ngmodel)

AngularJS - ngmodel中的ngrepeat不更新(“虚线”ngmodel)
EN

Stack Overflow用户
提问于 2014-10-30 09:32:45
回答 1查看 2K关注 0票数 3

我试图用角数组绘制radioBoxes,然后得到校验无线电的值,但是模型不会改变它的值--你,有人能帮我吗?

HTML部件

代码语言:javascript
运行
复制
<div ng-app>
    <div ng-controller="CustomCtrl">
        <label ng-repeat="user in users">
            <input type="radio" name="radio" ng-model="radio" value="{{user.name}}" /> {{user.name}} 
        </label>
        <br/>
        {{radio}}
        <br/>
        <a href="javascript:void(0)" ng-click="saveTemplate()">Save</a>
    </div>
</div>

角部

代码语言:javascript
运行
复制
function CustomCtrl($scope) {
    $scope.radio = "John";
    $scope.users = [
        {"name" : "John", "Year" : 18},
        {"name" : "Tony", "Year" : 19}
    ];

    $scope.saveTemplate = function() {
        console.log($scope.radio);
    };
}

您可以在这里看到示例- http://jsfiddle.net/hgf37bo0/2/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-30 09:48:41

您需要将$scope.radio设置为如下对象:

代码语言:javascript
运行
复制
$scope.radio = {
  name: 'John'
}

然后从html访问它,如下所示:

代码语言:javascript
运行
复制
<input type="radio" name="radio" ng-model="radio.name" value="{{user.name}}" />

这是一个工作的小提琴

您可以阅读为什么这在这个回答中是必要的。

从安格拉尔斯文档

范围继承通常很简单,而且您甚至不需要知道它正在发生.直到您尝试将双向数据绑定(即表单元素、ng模型)从子作用域中绑定到在父作用域中定义的基元(例如数字、字符串、布尔值)。它不像大多数人期望的那样起作用。所发生的情况是,子作用域获得自己的属性,该属性隐藏/阴影同名的父属性。这不是AngularJS正在做的事情--这是JavaScript原型继承的工作方式。 ..。 有“.”在您的模型中,将确保原型继承正在发挥作用。所以,用

代码语言:javascript
运行
复制
<input type="text" ng-model="someObj.prop1"> 

而不是

代码语言:javascript
运行
复制
<input type="text" ng-model="prop1">

如果您确实希望/需要使用原语,有两个解决方案: 在子作用域中使用$parent.parentScopeProperty。这将防止子范围创建自己的属性。在父作用域中定义一个函数,并从子范围调用它,将原语值传递给父函数(不总是可能的)

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26649364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档