简体   繁体   中英

ng-switch doesn't work inside ng-repeat AngularJS

I have some troubles with my code. I am trying to develop a questionnaire app that will have only 5 questions with 4 variants of answers on each. I used ng-switch inside ng-repeat , but it doesn't work.

PS It's only educational project.

There are index.html and app.js:

 const testApp = angular.module('tespApp',[]); testApp.controller('testAppCtrl', function ($scope) { $scope.tasks = [ {id: '1', question1: 'Lorem ipsum dolor sit amet.', question2: 'Lorem ipsum dolor sit amet.', question3: 'Lorem ipsum dolor sit amet.', question4: 'Lorem ipsum dolor sit amet.'}, {id: '2', question1: 'Lorem ipsum dolor sit amet.', question2: 'Lorem ipsum dolor sit amet.', question3: 'Lorem ipsum dolor sit amet.', question4: 'Lorem ipsum dolor sit amet.'}, {id: '3', question1: 'Lorem ipsum dolor sit amet.', question2: 'Lorem ipsum dolor sit amet.', question3: 'Lorem ipsum dolor sit amet.', question4: 'Lorem ipsum dolor sit amet.'}, {id: '4', question1: 'Lorem ipsum dolor sit amet.', question2: 'Lorem ipsum dolor sit amet.', question3: 'Lorem ipsum dolor sit amet.', question4: 'Lorem ipsum dolor sit amet.'}, {id: '5', question1: 'Lorem ipsum dolor sit amet.', question2: 'Lorem ipsum dolor sit amet.', question3: 'Lorem ipsum dolor sit amet.', question4: 'Lorem ipsum dolor sit amet.'}, ]; $scope.left = $scope.tasks.length; $scope.taskNow = $scope.tasks[0].id; }); 
 <!DOCTYPE html> <html lang="en" ng-app="tespApp"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.2/angular.min.js"></script> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> <script src="app.js"></script> </head> <body ng-controller="testAppCtrl"> <h1>Тест</h1> <h2>Осталось вопросов: {{left}}</h2> <h3>Вопрос: №{{taskNow}}</h3> <div ng-repeat="task in tasks"> <div ng-switch-on="task.id"> <div ng-switch-when="1">1</div> <div ng-switch-when="2">2</div> <div ng-switch-when="3">3</div> <div ng-switch-when="4">4</div> <div ng-switch-when="5">5</div> </div> </div> </body> </html> 

you wrote:

 <div ng-switch-on="task.id"> 

But it should be:

<div ng-switch on="task.id">

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM