我的问题是,我想通知未来控制器的对象将不得不处理。但是没有为每个对象创建一个不同的路径,因为它可能是很多,并且在路径中没有ID。但是,如何告诉控制器知道建筑物已被召唤。
HTML:
<ul>
<li class="menu-nested" ng-repeat="building in faculty.buildings">
<a href="#structure_department" title="">
<span class="menu-item-parent text-menu-resol"> {{ building.name }}</span>
</a>
</li>
</ul>
JS:
.when("/structure_department", {
templateUrl: "views/building.html",
controller: "BuildingController"
})
我不知道,也许你已经做过类似的事了? 的问候,
答案 0 :(得分:1)
如果我能正确理解你的问题,一个简单的方法就是使用服务。首先构建服务,然后将其注入您正在使用的控制器和您将使用的控制器。您需要做的就是设置服务使用的建筑物名称,然后在使用其他控制器时获取它。
创建您的服务:
angular.module('MyApp')
.service('DataService', function () {
var buildingName = '';
function getBuildingName() {
return buildingName ;
}
function setBuildingName(buildingname) {
buildingName = buildingname;
}
return {
setBuildingName: setBuildingName,
getBuildingName: getBuildingName,
}
});
在您的控制器中:
angular.module('MyApp')
.controller('buildingController', ['$scope', 'DataService',
function buildingController($scope, DataService) {
DataService.setBuildingName('buildingName');
}]);
和
angular.module('MyApp')
.controller('futureController', ['$scope', 'DataService',
function futureController($scope, DataService) {
$scope.buildingName = DataService.getBuildingName();
}]);
可以采取的另一种方式是通过路线参数。查看$ routeParams的角度文档,您可以在URL中传递它。只需将路由参数服务注入您的控制器,您就可以从URL中获取建筑物名称作为参数。