Итак, у меня есть база из источника: https://codepen.io/Russbrown/pen/IgBuh?editors=1010, для простого списка дел, который я буду расширять.Зачем менять количество подсчета количества списков при добавлении нового элемента?
Однако, когда я нажимаю флажок на элементе, общая сумма элементов, подлежащих заполнению, не обновляется.
Вот код:
index.php:
<!DOCTYPE html>
<html lang="en" ng-app="ToDo">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="Ryan Shah">
<link rel="icon" href="img/favicon.ico">
<title>Todo List - Untitled</title>
<script src="app/angular.js"></script>
<link href="css/style.css" rel="stylesheet">
</head>
<body>
<div class="container" ng-controller="listCtrl">
<p>Remaining Tasks: {{getItems()}}</p>
<ul>
<li ng-repeat="item in list">
<input type="checkbox" ng-model="item.completed" />
<span class="completed-{{item.completed}}">{{item.itemText}}</span>
</li>
</ul>
<form>
<input class="add-input" placeholder="I need to..." type="text" ng-model="newItemText" ng-model-instant />
<button class="add-btn" ng-click="insert()"><h2>Add</h2></button>
</form>
</div>
<script type="text/javascript" src="app/app.js"></script>
</body>
</html>
app.js:
var app = angular.module('ToDo', []);
app.controller('listCtrl', function listCtrl($scope) {
$scope.list = [
{
itemText: 'Hello World',
completed: false
},
{
itemText: 'Hello :)',
completed: false
}
];
$scope.getItems = function() {
return $scope.list.length;
};
$scope.insert = function() {
$scope.list.push({
text: $scope.newItemText,
completed: false
});
$scope.newItemText = '';
};
$scope.clear = function() {
$scope.list = _.filter($scope.list, function(item) {
return !item.completed;
});
};
});
нотабене: Я постарался использовать такие вещи, как ng-true-value
и ng-false-value
, но это тоже не хотело работать.
Помощь очень ценится :)
Какое * точное * значение не обновляется и вы хотите его обновить? – oryol
Сначала вы вызываете 'getItems();', но это должно быть '$ scope.getItems();'. – developer033
@ разработчик033 удален это линия. – madcrazydrumma