将ng-model设置为范围内的值?

时间:2013-09-19 11:08:37

标签: angularjs

我正在开发一个带有两个控制器的简单角度应用程序:

function Invite($scope) {
$scope.fieldsets =
    [
        {
        fields:
            [
                {
                    label: 'First Name',
                    name: 'firstname',
                    key: 'entry.810220554',
                    type: 'text',
                    required: true
                },
                {
                    label: 'Last Name',
                    name: 'lastname',
                    key: 'entry.1653030831',
                    required: true,
                },
                {
                    label: 'Email',
                    name: 'email',
                    key: 'entry.1727688842',
                    required: true,
                    type: 'email',
                },
                {
                    key: 'entry.1602323871',
                    type: 'radio',
                    labels:
                    [
                        {
                            name: 'media',
                            label: 'Media'
                        },
                        {
                            name: 'frilans',
                            label: 'Frilans'
                        }
                    ],
                }
            ],
        }
    ];
}

function Questionnaire($scope, $http){
    $scope.post = function(){
        console.log();
        $http.post('/signup.php', $scope.quiz).
        success(function(data, status, headers, config){
            console.log(data);
        });
    };
 }

问题范围是邀请范围的子项。这是布局的简化版本

<div ng-controller="Invite">
   <form ng-controller="Questionnaire" method="POST" ng-submit="post()">
     <input ng-model="{{field.key}}" />
   </form>
</div>

第一个生成一个表单,我希望键值用作ng-model。 在第二个范围中,以便我可以使用该密钥将它们发布到服务器。

我首先尝试使用

 <input ng-model="{{field.key}}" /> 

在我的html模板中,这是我直观的猜测,但它出现了错误。

 <input ng-model="field.key" /> 

这也给出了错误。

这是一个plnkr: http://plnkr.co/edit/rnQXlCCFQypVLs20OuTt?p=preview

1 个答案:

答案 0 :(得分:0)

问卷范围内没有对象fields。您可以使用ng-repeat=field in $parent.fields将对象引用到外部作用域中,我不确定嵌套作用域是否通过原型继承相关。

另一种方法是创建一个跟踪字段并将其注入需要访问数据的所有控制器的服务。