Динамически назначать идентификатор в URI в ng-ресурсе

У меня есть веб-страница, созданная на angularjs, в которой я использовал ng-ресурс и модуль ui-router.

В этом приложении Основное требование, которое я хочу, это чтобы на панели навигации я создал ng-repeat="". который выбирает имя пользователя из базы данных.

Теперь панель навигации будет создана

вместе с ui-sref="{{username}}", а затем теперь я показал app.js

этот App.js предназначен для представления, которое будет загружено, и для него потребуется {{username}} в качестве идентификатора, поэтому здесь имя пользователя необходимо для динамического распределения для каждого запроса get

var app = angular.module('trendy', ['ngResource']);

app.controller('trendyWho',[ 'UserFactory', function ( UserFactory) {

  var self=this;
  
    UserFactory.get({}, function (userFactory){
       self.userdata = userFactory.user;
       
    });
    
}]);
  


app.factory('UserFactory', function ($resource) {
   
    return $resource('Trending/js/{{id:username}}', {}, {
        query: {
            method: 'GET',
            params: {},
            isArray: true
        }
        
    })
    
 
});
<!-- index.html -->

<!DOCTYPE html>
<html ng-app="trendy">
<head>
<!-- CSS (load bootstrap) -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">  
<!-- JS (load angular, ui-router, and our custom js file) -->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.16/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.js" ></script>
<script src="app.js"></script>
</head>
<!-- apply our angular app to our site -->
<body >
<!-- NAVIGATION -->
<nav class="navbar navbar-inverse" role="navigation">
<div class="navbar-header">
  <a class="navbar-brand" ui-sref="#">AngularUI Router</a>
</div>
<ul class="nav navbar-nav" ng-repeat="">
   <li><a ui-sref=".../{{username}}">{{username}}</a></li>
   
</ul>
</nav>

<!-- MAIN CONTENT -->
<div class="container">

    <!-- THIS IS WHERE WE WILL INJECT OUR CONTENT ============================== -->
    <div ui-view></div>

</div>

</body>
</html>

1 ответ

Решение

Ты используешь ui-sref так я предполагаю, что вы используете ui-router?

Аргумент в ui-sref отличается от нормального href, вы передаете имя состояния вместо самого URL.

Например, ваше состояние

.state('main.user', {
    url: "/user/{userId:[0-9]{1,}",
    template: ...,
    controller: ...
})

Тогда ваш среф будетui-sref="main.user({userId: username})"

Другие вопросы по тегам