Member 13121956 Ответов: 1

Распространенная ошибка в angular JS


Привет я сталкиваюсь с одной распространенной ошибкой при рендеринге простого углового кода
<pre><!DOCTYPE html>
<html ng-app>

  <head>
    <script data-require="angular.js@*" data-semver="4.0.0" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.10/angular.min.js"></script>
    <script data-require="angular.js@*" data-semver="4.0.0" src="script.ts"></script>
    <script data-require="angular.js@*" data-semver="4.0.0" src="system.config.js">  </script>
    <script data-require="angular.js@*" data-semver="4.0.0" src="tsconfig.json"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
  </head>

  <body ng-controller='mainctrl'>
    <h1>Hello Plunker!</h1>
    <p>{{ message }}</p>
  </body>

</html>






Мой код JavaScript:

let mainctrl = function($scope) {
  $scope.message='Hello Angular!';
}



Когда я рендерю этот код я получаю строку ошибок

[$controller:ctrlreg] http://errors.angularjs.org/1.6.10/$controller/ctrlreg?p0=mainctrl


Я новичок в Angular, в чем может быть возможная проблема?

Что я уже пробовал:

Я попытался отрисовать код, но не смог найти ничего, что могло бы вызвать ошибку. Я также попытался удалить линию

<pre><script data-require="angular.js@*" data-semver="4.0.0" src="system.config.js">  </script>


так как он показал ошибку в этой строке

1 Ответов

Рейтинг:
1

Nathan Minier

Итак, для приложений Angular 1 вам нужно явно определить приложение и контроллеры, и они отличаются друг от друга. Это может читаться иначе, чем примеры, которые вы видели для NG2+.

var myApp = angular.module('myApp');

myApp.controller('mainctrl',['$scope', function($scope){
   $scope.message='Hello Angular!';
}]);


Определение контроллера включает массив инъекций зависимостей, используемый NG1, и вы заметите, что имя, используемое для контроллера в HTML, является строкой, а не переменной.

Затем измените тег html-объявления:
<html ng-app="myApp">