Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用for循环构建阵列_Javascript_Arrays_Angularjs - Fatal编程技术网

Javascript 用for循环构建阵列

Javascript 用for循环构建阵列,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,我正在一个测试应用程序中动态构建一个数组。基本上,我有一个scope函数,它生成一个人员数组并返回数组,在数组上有一个ng repeat。阵列未显示,但我在控制台中也没有收到任何错误,因此idk发生了什么: 我是否正确调用了getPerson函数?如果有更好的方法,一定要告诉我 $scope.person={ 名字:“, 姓氏:“, 是的, 全名:函数(){ var personobject; personobject=$scope.person; 返回personobject.firstna

我正在一个测试应用程序中动态构建一个数组。基本上,我有一个scope函数,它生成一个人员数组并返回数组,在数组上有一个
ng repeat
。阵列未显示,但我在控制台中也没有收到任何错误,因此idk发生了什么:

我是否正确调用了
getPerson
函数?如果有更好的方法,一定要告诉我

$scope.person={
名字:“,
姓氏:“,
是的,
全名:函数(){
var personobject;
personobject=$scope.person;
返回personobject.firstname
+ " " 
+personobject.lastname;
}
};
$scope.people=function(){
var pplArray=[];
var firstnames=['abdul'、'mahmud'、'gasser'、'ibtihaj'、'abudi'];
var lastnames=['ahmad'、'samrai'、'badawi'、'jasim'、'ahmad'];
var-actives=[true,true,false,true,false];
对于(var i=0;i
我在这里更新了你的小提琴:

var myapp=angular.module(“myapp”,[]);
myapp.controller('appCont',函数($scope){
var Person=函数(){
this.firstname=“”;
this.lastname=“”;
this.isActive=true;
};
Person.prototype.fullname=函数(){
返回这个名字
+ " " 
+这是我的姓;
};
var getPerson=函数(第一个、最后一个、活动){
var newPerson=newPerson();
newPerson.firstname=first;
newPerson.lastname=last;
newPerson.isActive=活动;
返回新人;
};    
$scope.addPerson=函数(){
$scope.people.push({
名字:$scope.person.firstname,
lastname:$scope.person.lastname
});
$scope.person.firstname='';
$scope.person.lastname='';
};
$scope.people=(函数(){
var pplArray=[];
var firstnames=['abdul'、'mahmud'、'gasser'、'ibtihaj'、'abudi'];
var lastnames=['ahmad'、'samrai'、'badawi'、'jasim'、'ahmad'];
var-actives=[true,true,false,true,false];
对于(var i=0;i
我看到一些问题:

1) $scope.people是一个函数,不是一个数组(所以我只是执行它并保存结果)

2) 您总是覆盖person(您需要一个person类来为数组元素创建新实例,而不是用新数据覆盖同一实例-这样您将在所有数组元素中获得相同的结果)

3) 在$scope上,您应该放置需要从视图访问的内容。助手函数可以是控制器中的本地函数(如果您不希望它们作为服务,尽管作为服务它们是可重用的)


4) 按ng repeat进行跟踪(如果存在重复的关键点)

$scope。people
是生成数组的函数,而不是数组本身,它从未被调用。您可能不想执行
$scope.people=(function(){….})(
,这将立即调用函数并将返回值设置为$scope.people。还有一些其他的东西不起作用,但是如果你调用这个方法,你会得到相应的错误消息。哦,我明白了,我会试试这个
$scope.person = {
        firstname: "",
        lastname: "",
        isActive: true,
        fullname: function() {
            var personobject;
            personobject = $scope.person;
            return personobject.firstname 
                + " " 
                + personobject.lastname;
        }
    };

$scope.people = function() {
        var pplArray = [];
        var firstnames = ['abdul','mahmud','gasser','ibtihaj','abudi'];
        var lastnames = ['ahmad','samrai','badawi','jasim','ahmad'];
        var actives = [true,true,false,true,false];
        for (var i = 0; i < firstnames.length; i++) {
            pplArray[i] = getPerson(firstnames[i], lastnames[i], actives[i]);
        }
        return pplArray;
    };
$scope.getPerson = function(first, last, active) {
        var newPerson = $scope.person;
        newPerson.firstname = first;
        newPerson.lastname = last;
        newPerson.isActive = active;
        return newPerson;
    };
var myapp = angular.module("myapp", []);
myapp.controller('appCont', function($scope) {

    var Person = function(){
        this.firstname = "";
        this.lastname = "";
        this.isActive = true;

    };

    Person.prototype.fullname = function() {
            return this.firstname 
                + " " 
                + this.lastname;
    };

    var getPerson = function(first, last, active) {
        var newPerson = new Person();
        newPerson.firstname = first;
        newPerson.lastname = last;
        newPerson.isActive = active;
        return newPerson;
    };    

    $scope.addPerson = function() {
        $scope.people.push({
            firstname: $scope.person.firstname,
            lastname: $scope.person.lastname
        });
        $scope.person.firstname = '';
        $scope.person.lastname = '';

    };

    $scope.people = (function() {
        var pplArray = [];
        var firstnames = ['abdul','mahmud','gasser','ibtihaj','abudi'];
        var lastnames = ['ahmad','samrai','badawi','jasim','ahmad'];
        var actives = [true,true,false,true,false];
        for (var i = 0; i < firstnames.length; i++) {
            pplArray[i] = getPerson(firstnames[i], lastnames[i], actives[i]);
        }
        return pplArray;
    })();


    /*$scope.people = [
        {firstname: 'abdul', lastname: 'ahmad'},
        {firstname: 'mahmud', lastname: 'samrai'},
        {firstname: 'gasser', lastname: 'badawi'},
        {firstname: 'ibtihaj', lastname: 'jasim'},
        {firstname: 'abudi', lastname: 'ahmad'},
        {firstname: 'ahmad', lastname: 'jasim'},
        {firstname: 'abdul', lastname: 'samrai'}
    ];*/
});