AngularJS表格数据没有被定义 [英] AngularJS Form data is not defined

查看:90
本文介绍了AngularJS表格数据没有被定义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在AngularJS,我有一个表格,提交时,将数据传递开了一个控制器,并将其发送到一个API。

形式:

 <形式NG提交=newCompany()>
            < D​​IV CLASS =表单组NG控制器=CompaniesController>
                <标签> ID< /标签><输入类型=文本名称=标识id =IDNG-模式=newCompany.id的tabindex =1级=表格控>
                <标签>名称< /标签><输入类型=文本名称=名字ID =名的tabindex =2NG-模式=newCompany.name级=表格控>
                <标签>主联系与LT; /标签><输入类型=文本名称=primary_contactID =primary_contact的tabindex =2NG-模式=newCompany.primary_contact级=表格控&GT ;
                <标签>地址< /标签><输入类型=文本名称=地址ID =地址的tabindex =2NG-模式=newCompany.address级=表格控>
                <标签>作用< /标签><输入类型=文本名称=功能ID =功能的tabindex =2NG-模式=newCompany.function级=表格控>
                <标签>电话和LT; /标签><输入类型=文本名称=电话ID =电话的tabindex =2NG-模式=newCompany.phone级=表格控>
                <标签>传真< /标签><输入类型=文本名称=传真ID =传真的tabindex =2NG-模式=newCompany.fax级=表格控>
                <标签> URL< /标签>< /标签><输入类型=文本名称=URLID =URL的tabindex =2NG-模式=newCompany.url级=形式 - 控制>
            < / DIV>
            < D​​IV CLASS =表单组>
                < D​​IV CLASS =行>
                    < D​​IV CLASS =COL-SM-6 COL-SM-偏移3>
                        <输入类型=提交名称=添加提交ID =添加提交的tabindex =10级=的形式控制BTN BTN-主要值=添加公司>
                        < BR>
                        < D​​IV CLASS =TEXT-中心>
                            < p NG秀=addCompany><跨度类=标签标签信息> {{addCompany}}< / SPAN>< / P>
                        < / DIV>
                    < / DIV>
                < / DIV>
            < / DIV>
        < /表及GT;

和控制器...

  app.controller(CompaniesController,['$范围','公司',函数($范围,公司){
    $ scope.title ='公司';
    $ scope.title_sub ='添加公司;   $ scope.companyData = {
       ID:$ scope.newCompany.id,
       名称:$ scope.newCompany.name,
       primary_contact:$ scope.newCompany.primary_contact,
       地址:$ scope.newCompany.address,
       功能:$ scope.newCompany.function,
       电话:$ scope.newCompany.phone,
       传真:$ scope.newCompany.fax,
       网址:$ scope.newCompany.url
   };    $ scope.newCompany =功能(){
        VAR公司=新的公司($ scope.companyData);
        。公司节省$();
    };    $ scope.companies = Companies.query();
}]);

不过 - 我得到的,说:不能读取属性未定义的'身份证'的错误

有谁知道什么是错在这里?我以为$范围。[NG-MODEL]获取表单数据...


解决方案

  1. 您有$ scope.newCompany变量,它是一个函数,而不是对象。


  2. 在初始化$ scope.companyData,你叫ID:$ scope.newCompany.id,其中$ scope.newCompany是不确定的。尝试使用其所有属性首先定义它($ scope.newCompany = {
    ID : ,
    ...
    })


  3. 打电话给你的提交功能,别的东西。


  4. 不要创建其名称本身就是一个功能的功能。 (功能:$ scope.newCompany.function)。这被保留作为关​​键字。


这些步骤可能会接近你想看看,如果没有回信的结果。

In AngularJS, I have a form, that when submitted, passes data off to a controller and sends it to an API.

Form:

 <form ng-submit="newCompany()">
            <div class="form-group" ng-controller="CompaniesController">
                <label>ID</label><input type="text" name="id" id="id" ng-model="newCompany.id" tabindex="1" class="form-control">
                <label>Name</label><input type="text" name="name" id="name" tabindex="2" ng-model="newCompany.name" class="form-control">
                <label>Primary Contact</label><input type="text" name="primary_contact" id="primary_contact" tabindex="2" ng-model="newCompany.primary_contact" class="form-control">
                <label>Address</label><input type="text" name="address" id="address" tabindex="2" ng-model="newCompany.address" class="form-control">
                <label>Function</label><input type="text" name="function" id="function" tabindex="2" ng-model="newCompany.function" class="form-control">
                <label>Telephone</label><input type="text" name="telephone" id="telephone" tabindex="2" ng-model="newCompany.phone" class="form-control">
                <label>Fax</label><input type="text" name="fax" id="fax" tabindex="2" ng-model="newCompany.fax" class="form-control">
                <label>URL</label></label><input type="text" name="url" id="url" tabindex="2" ng-model="newCompany.url" class="form-control">
            </div>
            <div class="form-group">
                <div class="row">
                    <div class="col-sm-6 col-sm-offset-3">
                        <input type="submit" name="add-submit" id="add-submit" tabindex="10" class="form-control btn btn-primary" value="Add Company">
                        <br>
                        <div class="text-center">
                            <p ng-show="addCompany"><span class="label label-info">{{ addCompany }}</span></p>
                        </div>
                    </div>
                </div>
            </div>
        </form>

And the controller...

app.controller("CompaniesController", ['$scope', 'Companies', function($scope, Companies) {
    $scope.title = 'Companies';
    $scope.title_sub = 'Add Company';

   $scope.companyData = {
       id: $scope.newCompany.id,
       name: $scope.newCompany.name,
       primary_contact: $scope.newCompany.primary_contact,
       address: $scope.newCompany.address,
       function: $scope.newCompany.function,
       telephone: $scope.newCompany.phone,
       fax: $scope.newCompany.fax,
       url: $scope.newCompany.url
   };

    $scope.newCompany = function() {
        var company = new Companies($scope.companyData);
        company.$save();
    };

    $scope.companies = Companies.query();
}]);

However - I get an error that says "cannot read property 'id' of undefined"

Does anybody know what is wrong here? I thought $scope.[NG-MODEL] gets the form data...

解决方案

  1. You have a $scope.newCompany variable which is a function, not an object.

  2. When you initialize $scope.companyData, you call id: $scope.newCompany.id, where $scope.newCompany is undefined. Try define it first with all its properties ($scope.newCompany = { id : "", ... })

  3. Call your submit function something else.

  4. Do not create a function whose name itself a 'function'. (function: $scope.newCompany.function). This is reserved as a keyword.

These steps may be close to the result you want to see, if not reply back.

这篇关于AngularJS表格数据没有被定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆