我有一个简单的AngularJS应用程序,其中包含一个包含集合的服务。
有一个导航视图,其中一个表单及其控制器添加到集合中。 index.html文件中包含ng-include属性的视图:
<div ng-include="'views/nav.html'"></div><div ng-view="">
还有另一个视图及其控制器来显示集合内容。使用app / scripts / app.js文件中的route语句调用此视图:
.when('/link/list/', {
templateUrl: 'scripts/domain/link/view/list.html',
controller: 'linkListController'
})
但是当我尝试在/#/ link / list /地址中添加表单中的项目时,这个其他视图没有显示任何内容,并且视图中没有显示任何收集项目。
我觉得我的导航控制器没有与显示列表视图共享集合。
这是列表集合控制器:
app.controller('linkListController', function ($scope, $log, loggingService, firebaseLinkService, LinksService) {
});
这里是list.html视图:
<div class="post row" ng-repeat="link in links">
<a href="{{ link.url }}">
{{ link.title }}
<span class="url">({{ link.url | hostnameFromUrl }})</span>
</a>
</div>
这是导航控制器:
app.controller('navController', function ($scope, $log, $location, loggingService, firebaseLinkService, LinkService, LinksService) {
$scope.addLink = function() {
$scope.link = LinkService;
$scope.links = LinksService;
var linkUrlId = firebaseLinkService.push($scope.link);
var pathArray = linkUrlId.toString().split('/');
var linkId = pathArray[pathArray.length - 1];
$scope.link.id = linkId;
$scope.links.push($scope.link);
$scope.link = {id: '', url: '', title: ''};
};
});
它的观点:
<div ng-controller="navController">
<form ng-submit="addLink()">
<input type="text" ng-model="link.title">
<input type="text" ng-model="link.url">
<button type="submit" >Submit</button>
</form>
</div>
我认为我的两个控制器都是根控制器,因为它们是通过app.controller()在app上完成的。是这样的吗?如果是这样,那么它们的范围是根范围吗?
亲切的问候,
Stephane Eybert