Не могу получить доступ к ng-модели из ввода в контроллере
Я следовал за учебником, и я сделал все точно так же. В какой-то момент я попал туда, где поведение сайта было не таким, как задумано.
Предполагается, что когда я ставлю двойные скобки вокруг заголовка, все, что я печатаю в строке поиска, немедленно передается в местоположение {{title}}
, Но вместо этого он обрабатывает его как обычный файл HTML и просто показывает {{title}}
на веб-странице.
Обычно люди говорят мне не публиковать весь код, потому что он должен быть кратким, но как еще вы сможете найти какие-либо ошибки в коде, если не видите весь код?
В любом случае в WebStorm я получаю следующие ошибки:
<html lang="en" ng-app="ToDoApp">
Атрибут нг приложение здесь не допускается.
Я пытался изменить его на data-ng-app
и это избавляет от ошибки, но не решает проблему.
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
Затем в этой части говорится, что для этого нет локальных данных. Я не могу скачать его, потому что у меня мало места на диске. Но профессор не загрузил его, и он все еще работал хорошо для него.
По сути везде я ставлю ng...
его высказывание я не могу поместить это там.
Это фрагмент кода, который не действует как задумано. Кажется, просто игнорировать ng-model
, В нем также говорится, что входные данные нуждаются в ярлыках, но опять же это не было проблемой для профессора.
<div ng-controller="TodoListController">
<input ng-model="title" class="form-control"/>
{{title}}
На всякий случай вот полный Angular index.html
файл:
<!DOCTYPE html>
<html lang="en" ng-app="ToDoApp">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
<script src="app.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" />
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div class="container">
<h1> Todo List App </h1>
<div ng-controller="TodoListController">
<input ng-model="title" class="form-control"/>
{{title}}
<button class="btn btn-block btn-primary"> Add a todo </button>
<ul class="list-group">
<li class="list-group-item"> Pick up kids </li>
<li class="list-group-item"> Pick up milk </li>
</ul>
</div>
</div>
</body>
</html>
1 ответ
Это всегда будет работать до тех пор, пока вы не назовете свой ng-app
и не использовать ng-controller
, Если вы используете ng-app="ToDoApp"
и контроллер ng-controller="TodoListController"
Вы должны рассмотреть возможность объявить ваше приложение в app.js, как указано ниже.
var app = angular.module('ToDoApp', []);
app.controller('TodoListController', ["$scope", function($scope) {
}]);
Полный код как показано ниже
<!DOCTYPE html>
<html lang="en" ng-app="ToDoApp">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
<script>
/**
Scripting in html not recomnded use separate file
*/
var app = angular.module('ToDoApp', []);
app.controller('TodoListController', ["$scope", function ($scope) {
}]);
</script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" />
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div class="container">
<h1> Todo List App </h1>
<div ng-controller="TodoListController">
<input ng-model="title" class="form-control" />
{{title}}
<button class="btn btn-block btn-primary"> Add a todo </button>
<ul class="list-group">
<li class="list-group-item"> Pick up kids </li>
<li class="list-group-item"> Pick up milk </li>
</ul>
</div>
</div>
</body>
</html>