【发布时间】:2018-08-01 16:29:35
【问题描述】:
我刚开始学习 AngularJS,我想从表单传递信息,然后传递给控制器,然后将信息输入到一个数组中,但收到此消息“无法读取未定义的属性 'push'”。我不知道部分我做错了。我希望你们能帮我解决这个问题。提前谢谢你。
form.html
<!DOCTYPE html>
<html ng-app="formTraining">
<head>
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
<script type="text/javascript" src="angular.min.js"></script>
<script type="text/javascript" src="formapp.js"></script>
<link rel="stylesheet" href="style.css" />
</head>
<body ng-controller="UserController as usersCtrl">
<h3>User Information</h3>
<div ng-repeat="user in usersCtrl.mUsers">
<p><ul>
<li>{{user.name}}</li>
<li>{{user.age}}</li>
<li>{{user.occupation}}</li>
</ul></p>
</div>
<div ng-controller="FormController as formCtrl">
<form name="form" ng-submit="form.$valid && formCtrl.addUser(user)">
<h5>Submit a Review</h5>
<fieldset class="form-group">
<input type="text" ng-model="UserCtrl.newUser.name" class="form-control" placeholder="write your name.." title="Name">
</fieldset>
<fieldset class="form-group">
<input type="text" ng-model="UserCtrl.newUser.age" class="form-control" placeholder="write you actual age.." title="Age">
</fieldset>
<fieldset class="form-group">
<input type="text" ng-model="UserCtrl.newUser.occupation" class="form-control" placeholder="write your job.." title="occupation">
</fieldset>
<fieldset class="form-group">
<input type="submit" class="btn btn-primary pull-right" value="submit form">
</fieldset>
</form>
</div>
</body>
</html>
formapp.js
(function(){
var app = angular.module("formTraining",[]);
app.controller('UserController',function(){
this.mUsers = users;
});
app.controller('FormController',function(){
this.newUser = {};
this.addUser = function(user){
user.push(this.newUser);
this.newUser = {};
};
});
var users = [{
name:"michael",
age:"27",
occupation:"business"
},{
name:"john",
age:"25",
occupation:"police"
}];
})();
【问题讨论】:
-
user确实是未定义的。当然,您将其传递给this.addUser,但您从未真正将其设置为变量。你的意思可能是users。
标签: javascript html arrays angularjs