Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.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 Angular JS:如何使用数组作为模型?_Javascript_Angularjs_Angularjs Scope - Fatal编程技术网

Javascript Angular JS:如何使用数组作为模型?

Javascript Angular JS:如何使用数组作为模型?,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我拥有的是使用ng repeat生成的任务列表。每个任务都有一个隐藏表单来更新任务。首先,我以lis的形式列出所有任务,每当单击一些li时,我都试图使表单可见,并隐藏任务li(使用ng show和ng hide)。在我看来,我有以下几点 <span ng-repeat="task in tasks"> <li class="tasknum-{{$index}} tasknum-{{$index}}-task" ng-click="toggleEditForm( $in

我拥有的是使用
ng repeat
生成的
任务列表。每个任务都有一个隐藏表单来更新任务。首先,我以
li
s的形式列出所有任务,每当单击一些
li
时,我都试图使表单可见,并隐藏任务
li
(使用
ng show
ng hide
)。在我看来,我有以下几点

<span ng-repeat="task in tasks">
    <li class="tasknum-{{$index}}  tasknum-{{$index}}-task" ng-click="toggleEditForm( $index )"  ng-hide="editTaskForm[{{$index}}]">
        ...
    </li>
    <!-- /.task -->

    <li class="task add-task-form" ng-show="editTaskForm[{{$index}}]">
        ...
    </li>
</span>
但由于某些原因,我将
$scope.editTaskForm
设置为
未定义。例如,当我单击第一个任务
li
,它会显示:

TypeError: Cannot read property '0' of undefined!

谁能告诉我,我做错了什么?

正如@Omar在上面的评论中所建议的那样,初始化数组解决了问题

$scope.editTaskForm = [];

尝试在控制器的第一行初始化数组:($scope.editTaskForm=[];)是的,为了安全起见,请始终在控制器的第一行初始化作用域变量。@Omar谢谢,它成功了:-)
$scope.editTaskForm = [];