Javascript Angularjs控制器功能不工作
我对Angularjs是新手。我创建了一个小程序来获取表单提交的输入,并使用控制器函数将其添加到json数据中 这似乎是程序中的一个小错误,但我无法找到它 请帮助:下面是我的angjs.html(其中定义了表单)和app.js(用于控制器和json数据): angjs.htmlJavascript Angularjs控制器功能不工作,javascript,angularjs,json,Javascript,Angularjs,Json,我对Angularjs是新手。我创建了一个小程序来获取表单提交的输入,并使用控制器函数将其添加到json数据中 这似乎是程序中的一个小错误,但我无法找到它 请帮助:下面是我的angjs.html(其中定义了表单)和app.js(用于控制器和json数据): angjs.html <body> <div ng-controller="loginController as login"> <div ng-repeat="user in login
<body>
<div ng-controller="loginController as login">
<div ng-repeat="user in login.users">
<h2>{{user.username}}</h2>
<h3>{{user.password}}</h3>
</div>
<form name="loginUser" ng-controller="FeedDataController as feedCtrl" ng-submit="feedCtrl.addUser(user)">
<!-- Live preview -->
<div>
<h2>{{feedCtrl.user.username}}</h2>
<h3>{{feedCtrl.user.password}}</h3>
</div>
<!-- form submit -->
<input type="text" ng-model="feedCtrl.user.username" name="username" /><br />
<input type="text" ng-model="feedCtrl.user.password" name="password" /><br />
<input type="submit" value="GO" />
</form>
</div>
</body>
用户和用户之间有输入错误 普朗克:
在
ng submit=“feedCtrl.addUser(user)”
中,您使用未定义的用户。更改为ng submit=“feedCtrl.addUser(feedCtrl.user)”
您尚未正确关闭app.js中的iLife函数:
(function(){
var app = angular.module('login', []);
app.controller('loginController',function(){
//var vm = this;
this.users = user;
});
app.controller('FeedDataController',function(){
//var vm = this;
this.user={};
this.addUser=function(user){
user.push(this.user);
this.user={};
};
});
var user = [
{username: 'Azurite', password: 'hello', canPurchase: false, soldOut: true },
{username: 'Blinge', password: 'right', canPurchase: false, soldOut: true }
];
})();
您遇到了哪个错误?您是否在提供的angjs.html中定义了angular应用程序?您给定的
应包含在包含ng app
的div中。没有错误,只是addUser函数不起作用!:(@Jagrut:是的,我在我的标签上定义了ng应用程序。所有div仅包含在其中。你正在重置this.user
中的addUser()
函数。你需要删除它。我用html标签定义了ng应用程序:我更改了我的答案;你在user.push(this.user);?它应该是users.push(this.user)
所有的代码都在你面前。我按照你的建议做了。没有输入错误这里是控制台说的:TypeError:user.push不是addUser(app.js:12)在angular.js:12345在f(angular.js:21438)在l$eval(angular.js:14401)在l$apply(angular.js:14500)在HTMLFormElement的函数。(angular.js:21443)在HTMLFormElement.c(angular.js:3014)
我看到它在那里工作。这正是我想要的,我看到你将“window.angular”传递给了所有封闭函数。这就是问题所在吗?下面是控制台所说的:TypeError:user.push不是addUser(app.js:12)的函数在HTMLFormElement(angular.js:21443)在HTMLFormElement(angular.js:21443)在HTMLFormElement.c(angular.js:3014)在angular.js:12345在f(angular.js:21438)在l$eval(angular.js:14401)在l$apply(angular.js:14500)在HTMLFormElement.c(angular.js:3014)
你在混合用户
,
var app = angular.module('login',[]);
app.controller('loginController',function(){
this.users = users;
});
app.controller('FeedDataController',function(){
this.user={};
this.addUser=function(){
users.push(this.user);
this.user={};
};
});
var users = [
{username: 'Azurite', password: 'hello', canPurchase: false, soldOut: true },
{username: 'Blinge', password: 'right', canPurchase: false, soldOut: true }
];
});
(function(){
var app = angular.module('login', []);
app.controller('loginController',function(){
//var vm = this;
this.users = user;
});
app.controller('FeedDataController',function(){
//var vm = this;
this.user={};
this.addUser=function(user){
user.push(this.user);
this.user={};
};
});
var user = [
{username: 'Azurite', password: 'hello', canPurchase: false, soldOut: true },
{username: 'Blinge', password: 'right', canPurchase: false, soldOut: true }
];
})();