Используйте завод или Услугу
Чтобы разделить функции между различными контроллерами можно использовать фабрику или услугу. пример покажет это лучше
контроллера & завода
Это пример из документации Угловой JS. завод может использоваться везде, где он вводится в функцию.
angular.
module('myServiceModule', []).
controller('MyController', ['$scope','notify', function ($scope, notify) {
$scope.callNotify = function(msg) {
notify(msg);
};
}]).
factory('notify', ['$window', function(win) {
var msgs = [];
return function(msg) {
msgs.push(msg);
if (msgs.length == 3) {
win.alert(msgs.join("\n"));
msgs = [];
}
};
}]);
См функции на контроллере есть инъекция notify
этого можно было бы назвать по-другому контроллеру, если вы так хотели.
Директивы
Вы также должны взглянуть на директивы, они позволяют создавать свои собственные HTML-теги и атрибуты. Их можно использовать повторно на разных страницах.
Пример Директива
Вот фактический код Директивы
app.directive('appInfo', function() {
return {
restrict: 'E',
scope: {
info: '='
},
templateUrl: 'js/directives/appInfo.html'
};
});
restrict: E
означает, что он будет использоваться в качестве элемента не является атрибутом.
scope
перечислены различные области, доступные для элемента.
templateUrl
Это ссылка на то, где вы храните свой html-фрагмент.
Вот дИРЕКТИВЫ фрагмент кода HTML
<img class="icon" ng-src="{{ info.icon }}">
<h2 class="title">{{ info.title }}</h2>
<p class="developer">{{ info.developer }}</p>
<p class="price">{{ info.price | currency }}</p>
Смотрите, что у нас есть доступ к info
от объема
Ниже см директиву как тег в нашей основной HTML, вы можете поместить это в индекс страницы или любого из ваших шаблонов столько раз, сколько вам нравится.
<div class="card">
<app-info info="move"></app-info>
</div>
Вот основы построения директивы, это один имеет только HTML и объем, но вы можете сделать гораздо более сложные из них, которые используют контроллеры.
Дополнительное примечание для исследования
Потратьте некоторое время, чтобы пройти через Codecademy AngularJS учебники, они свободны и принимать только 2 ночи рабочих поверхностей. Они также объясняют все основы Angular JS, как директивы, контроллеры, службы и т. Д.
Ответ на первый вопрос будет заключаться в использовании сервисов. https://docs.angularjs.org/guide/services Для второго вы должны, вероятно, взглянуть на директивы https://docs.angularjs.org/guide/directive – Reins