我有一个有角度的应用程序,它有一个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中的任何视图。
我一直在搜索web,我找不到更好的方法是在binding控制器/组件、$scope系统、自定义service或其他东西中使用view-one (即binding: {data:'<'})。我也无法发现我会用这两种方法来获取数据。因此,任何答案,也包括( a)代码样本和( b)链接到进一步的文档,我可以阅读将不胜感激。
发布于 2018-06-10 03:26:20
建议的方法是创建一个服务,并让不同的控制器使用对服务提供的对象的引用。
https://stackoverflow.com/questions/50778754
复制相似问题