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

时间:2014-05-31 08:25:47

标签: javascript angularjs angularjs-scope

我所拥有的是使用tasks生成的ng-repeat列表。每个任务都有一个隐藏的表单来更新任务。首先,我列出li s形式的所有任务,每当点击li时,我都会尝试使表单可见并隐藏任务li(使用ng-showng-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>

由于会有多个任务,您可以注意到,我尝试使用editTaskForm[{{$index}}],以便模型可以作为数组工作。在我的模型中,我有以下内容:

$scope.toggleEditForm = function ( index ) {
    $scope.editTaskForm[index] = !$scope.editTaskForm[index];
}

但由于某种原因,我得$scope.editTaskFormundefined。例如,当我点击第一个任务li时,它会显示:

TypeError: Cannot read property '0' of undefined!

任何人都可以告诉我,我在这里做错了吗?

1 个答案:

答案 0 :(得分:0)

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

$scope.editTaskForm = [];