Javascript Angularjs控制器功能不工作

Javascript 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

我对Angularjs是新手。我创建了一个小程序来获取表单提交的输入,并使用控制器函数将其添加到json数据中

这似乎是程序中的一个小错误,但我无法找到它

请帮助:下面是我的angjs.html(其中定义了表单)和app.js(用于控制器和json数据):

angjs.html

<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  }
];

})();