Как реализовать AngularJS MVC - PullRequest
0 голосов
/ 07 июня 2019

Я новичок и заинтересован в изучении AngularJS. Проблема в том, что я прошел несколько учебных пособий по YouTube и онлайн-контент, но нигде не смог найти правильную реализацию архитектуры MVC на английском языке. Как контролеры ломают мою голову.

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

Помощь и руководство будут высоко оценены.

1 Ответ

0 голосов
/ 08 июня 2019

Поскольку вы сказали в своем посте, что вы не уверены в части контроллера, я объясню, что это такое. Контроллер в AngularJS находится под видом и контролирует , что делает представление. Вот небольшой пример из документов:

<html ng-app="phonecatApp">
<head>
  ...
  <script src="lib/angular/angular.js"></script>
  <script src="app.js"></script>
</head>
<body ng-controller="PhoneListController">

  <ul>
    <li ng-repeat="phone in phones">
      <span>{{phone.name}}</span>
      <p>{{phone.snippet}}</p>
    </li>
  </ul>

</body>
</html>

Это вид. Давайте разберемся с этим!

  1. Вы увидите ng-controller="PhoneListController. Это объявляет контроллер для этого представления.
  2. Далее вы увидите ng-repeat="phone in phones". Думайте об этом как для цикла. Переменная цикла называется phone, и она перебирает массив телефонов, объявленный в контроллере, который можно определить здесь:

var phonecatApp = angular.module('phonecatApp', []);

phonecatApp.controller('PhoneListController', function PhoneListController($scope) {
  $scope.phones = [
    {
      name: 'Nexus S',
      snippet: 'Fast just got faster with Nexus S.'
    }, {
      name: 'Motorola XOOM™ with Wi-Fi',
      snippet: 'The Next, Next Generation tablet.'
    }, {
      name: 'MOTOROLA XOOM™',
      snippet: 'The Next, Next Generation tablet.'
    }
  ];
});

Вот контроллер! Это то, что контролирует представление. Давайте разберемся и с этим!

  1. var phonecatApp = angular.module('phonecatApp', []); по сути вытягивает экземпляр модуля phonecatApp в ваш файл. Думайте о модуле как о контейнере. Вы можете добавить в контейнер такие вещи, как контроллеры, сервисы и различные зависимости.
  2. phonecatApp.controller('PhoneListController', function PhoneListController($scope) эта строка добавляет новый контроллер в модуль с именем PhoneListController помните, когда мы использовали директиву ng-controller="PhoneListController в представлении? Параметр $scope позволяет нам получить доступ к переменным в представлении, как переменная phones, о которой мы говорили.
  3. $scope.phones вот как мы объявляем переменную, которую мы намерены использовать в представлении. Когда мы добавляем $scope. перед переменной, мы теперь можем получить к ней доступ в представлении. Вы заметите, что $scope.phones - это массив объектов.

При использовании ng-repeat он ожидает массив объектов, потому что когда мы используем переменную цикла, о которой мы говорили, мы можем получить доступ к свойствам объектов в представлении! Это можно увидеть здесь!

  <ul>
    <li ng-repeat="phone in phones">
      <span>{{phone.name}}</span>
      <p>{{phone.snippet}}</p>
    </li>
  </ul>

Это доступ к каждому объекту в массиве phones и присвоение этого объекта переменной с именем phone, после чего мы можем вывести свойства объекта phone с помощью точечной нотации!

В общем, этот ng-repeat создает новый элемент li для каждого объекта в массиве phones, который был объявлен с использованием нотации $scope! Теперь это может быть очень мощным! Вы можете сделать что-то вроде этого!

$scope.name = "Marcus"

Тогда в представлении я мог бы:

<p>{{name}}</p>

Тогда представление покажет, какая переменная name находится в моем контроллере!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...