Привязка к внешней модели в представлении

Итак, я создаю приложение с использованием среды Mean.js, я уже создал два модуля, модуль клиента и модуль встреч. Назначение будет иметь идентификатор клиента.

Mean.js создает файлы клиента и сервера в модулях, Angular используется на стороне клиента.

У меня пока нет опыта работы с Angular, поэтому я испытываю некоторые затруднения, пытаясь выяснить, каков будет подход для выполнения следующих действий.

В "create-assignments-view.html" (модуль встреч) я хочу иметь возможность привязать окно поиска к контроллеру клиентов, чтобы я мог найти имя клиента и выбрать его.

Модуль клиентов работает, как и ожидалось, я могу создавать, перечислять, редактировать и обновлять новых клиентов, но, конечно, ему не нужна дополнительная информация из другого модуля. В отличие от модуля встреч, где я хочу иметь возможность просмотреть список клиентов и выбрать одного из них.

Каждый модуль имеет свой собственный контроллер, который управляет операциями CRUD, маршрутами и представлениями.

Я хотел бы получить помощь, документацию, ссылки и т. Д., Которые помогут мне получить ответ и понять основы того, как это можно сделать.

Спасибо!

1 ответ

Вероятно, нужно использовать сервис Angular, точнее фабрику. Это так называемые синглтоны, которые не меняются, как контроллеры.

Вот пример облегченного плунжера: http://plnkr.co/edit/DoxvzZZf4OIxaOJ24EED

angular
        .module('app',['ngRoute'])
        .config(config)
        .factory('Service',Service)
        .controller('FirstCtrl',FirstCtrl)
        .controller('SecondCtrl',SecondCtrl);


    function config($routeProvider) {
        $routeProvider
          .when('/', {
            templateUrl: 'one.html',
            controller: 'FirstCtrl as first_ctrl'
          })
          .when('/two', {
            templateUrl: 'two.html',
            controller: 'SecondCtrl as second_ctrl'
          })
          .otherwise({
            redirectTo: '/'
          });
    }


    function Service() {
        var service = {
            name: 'Clark'
        }

        return service;
    }

    function FirstCtrl(Service) {
        var vm = this;

        vm.name = Service.name;
        vm.setName = setName;

        function setName() {
            console.log('new name set');
            Service.name = vm.name;
        }
    }

    function SecondCtrl(Service) {
        var vm = this;
        vm.name = Service.name;
    }
Другие вопросы по тегам