У меня есть меню, отображающее разные группы. Имя, к которому принадлежит пользователь. Я подготовил шаблонную страницу, так что, когда пользователь выбирает одну из групп меню, изменяются поля шаблона.
<li><a href="#"><i class="glyphicon glyphicon-folder-open"></i>Home </a></li>
<li><a data-toggle="collapse" ng-init="getAllGroupsofUser()"data-target="#groups">My Groups</a>
<ul id="groups" class="collapse">
<li ng-repeat="group in groupsofUser" ng-controller="groupsCTRL"><a
ng-click="openPage(group)">{{group.name}}</a>
</li>
</ul>
</li>
Группы были успешно показаны в меню. Я использую ng-view и $ routeProvider.
мой $ routeProvider
app.config(['$routeProvider',
function($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'home.html',
controller:"MyController"
})
.when('/group/:groupname', {
templateUrl: "groupTemplate.html",
controller:"groupsCTRL"
}).
otherwise({
redirectTo: '/'
});
}]);
мой контроллер
app.controller('groupsCTRL',[ '$scope', '$http' , '$location', '$routeParams' ,function($scope, $http,$location,$routeParams){
$scope.groupeName= $routeParams.groupname;
$scope.openPage = function(group) {
$scope.groupselected = group;
console.log("group: "+$scope.groupselected.id);
location.href = "#/group/"+group.name;
}
}]);
мой шаблон
<div class="row" >
<h1 class="page-header">Groupe {{groupeName}} </h1>
</div>
<div class="row">
{{groupselected.id}}
</div>
моя проблема заключается в том, что отображается groupeName, но groupselected.id отображается только в консоль (потому что я использовал console.log("group: "+$scope.groupselected.id);
)
, пожалуйста, помогите мне, мне нужно знать, была ли группа передана на страницу, потому что на следующем этапе мне нужно будет показать информацию об этой выбранной группе.
вам нужно использовать '$ location.path (" #/group/"+ group.name);' вместо 'location.href =" #/group/"+ group.name;' –
Я изменил его на $ location.path ("#/group /" + group.name); но таким образом URL-адрес не изменился, и моя страница не была вызвана – Yuri
, в основном вам нужно называть '$ scope. $ apply()' после нее, будет работать для вашего дела –