AngularJS表格数据没有被定义 [英] AngularJS Form data is not defined
问题描述
在AngularJS,我有一个表格,提交时,将数据传递开了一个控制器,并将其发送到一个API。
形式:
<形式NG提交=newCompany()>
< DIV 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>
< DIV CLASS =表单组>
< DIV CLASS =行>
< DIV CLASS =COL-SM-6 COL-SM-偏移3>
<输入类型=提交名称=添加提交ID =添加提交的tabindex =10级=的形式控制BTN BTN-主要值=添加公司>
< BR>
< DIV 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]获取表单数据...
-
您有$ scope.newCompany变量,它是一个函数,而不是对象。
-
在初始化$ scope.companyData,你叫ID:$ scope.newCompany.id,其中$ scope.newCompany是不确定的。尝试使用其所有属性首先定义它($ scope.newCompany = {
ID : ,
...
}) -
打电话给你的提交功能,别的东西。
-
不要创建其名称本身就是一个功能的功能。 (功能:$ 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...
You have a $scope.newCompany variable which is a function, not an object.
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 : "", ... })
Call your submit function something else.
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屋!