У меня есть угловое приложение, которое имеет ng-view
, которое (как и любой хороший MVC должен) манипулирует отображением модели.Данные (модель) поступают из базы данных, и я вызываю их в компонент приложения.Оттуда я хочу распространить (если это правильное слово) модель в ng-view
, которая загружает шаблон для отображения данных, основанных на route
.Я также хочу иметь возможность фильтровать данные / модель, которая входит в представление, с помощью «top-bar
»
Т.е.:
INDEX.HTML:
<html ng-app="app">
<head>...</head>
<body ng-controller="appController">
<top-bar></top-bar>
<div ng-view></div>
</body>
</html>
APP.JS:
angular.module('app', ['top-bar','view-one','view-two', 'ngRoute']);
angular.module('app').controller('appController', function() {
var self = this;
this.myData = [];
$http.get('theQuery').then(res => self.myData = res.data);
});
angular.config(function($routeProvider, $locationProvider) {
$routeProvider
.when('/view-one', {template:'<view-one></view-one>'})
.when('/view-two', {template:'<view-two></view-two>'});
});
angular.module('top-bar', ['ngRoute']);
angular.module('top-bar').component('top-bar', {
templateUrl: './app/top-bar/top-bar.template.html',
controller: function(filterFilter) {
this.filters = filterFilter(...);
}
});
angular.module('view-one', ['ngRoute']);
angular.module('view-one').component('view-one', {
templateUrl: './app/view-one/view-one.template.html',
controller: function(filterFilter) {
// appController.data and topBar.filters would somehow
// need to be gotten from those respective modules.
this.data = appController.data;
this.filter = topBar.filters;
}
});
Я пытаюсь выяснить, как получить данные из контроллера основного приложения (appController
) икомпонента top-bar
и отправьте его в любой вид, который в данный момент загружен в ng-view
.
Я искал в Интернете, я не могу найти лучший способ сделать это - использовать binding
(т.е. binding: {data:'<'}
) в view-one
контроллере / компоненте, системе $scope
s, пользовательском service
или чем-то еще.Я также не могу выяснить, смогу ли я использовать любой из них, чтобы получить данные там.Таким образом, любые ответы, которые также включают a) примеры кода и b) ссылки на дополнительную документацию, на которой я мог бы прочитать, были бы очень благодарны.