LesteTheMolesterCockensch
@LesteTheMolesterCockensch
Web developer

Как отсортировать значения в handelbars?

Привет всем) Мне от сервера приходит выборка комментариев в виде двумерного массива я принимаю как json, моя задача дать текущему пользователю доступ к редактированию и удалению комментария, делать я это хочу при помощи проверки на совпадение id текущего пользователя с id пользователя из комментария, if самого шаблона не предусматривает, как понял, может быть я ошибаюсь различные знаки сравнения, поэтому пытаюсь сделать сортировку при помощи метода handlebars.registerHelper но пока что получается только дикая сатанидза, вот код в общем:
$.ajax({
					url: '/comments.php',
					type: 'POST',
					data: 'itemId=' + itemId,
					dataType: 'json',
					success: function(results) {
							template = Handlebars.compile( $('#comment_template').html() );
							
							Handlebars.registerHelper('user_access', function(userid) {
								var currentUserId = $('#userId').val();
								var id;
			
								/*for(var i=0, l=results.length; i<l; i++) {
									id = results[i].userid;
									console.log(id);
								}
								
								if(id == currentUserId){
									return true;
								}else{
									return false;
								}*/
								
								var i = 0;
								console.log(results[i].userid);
								if(results[i].userid == currentUserId){
									return userid;
									i++;
								}else{
									return false;
									i++;
								}
							});
							
							$('#comments_table').append( template(results) );
					}
				});


вот щаблон:

<script id="comment_template" type="text/x-handlebars-template">
					{{#each this}}
					<tr comment_id="{{comment_id}}">
						<td class="col-md-3">
							<p>{{ comment_datetime }}</p>
							<p><strong>Имя пользователя:</strong></p>
							<p>{{ username }}</p>
						</td>
						<td class="col-md-9">
							<p>{{ comment }}</p>
							{{#if user_access}}
								<p class="btn btn-default">Удалить</p>
								<p class="btn btn-default">Редактировать</p>
							{{/if}}
						</td>
						
					</tr>
					{{/each}}
				</script>


подскажите че нить плиз)
  • Вопрос задан
  • 193 просмотра
Решения вопроса 1
LesteTheMolesterCockensch
@LesteTheMolesterCockensch Автор вопроса
Web developer
Парился парился в итоге просто сделал два шаблона и в success сделал проверку) Если нужный юзер один шаблон, если не нужный то другой)

$.ajax({
				url: '/comments.php',
				type: 'POST',
				data: 'loadPageItemId=' + itemId,
				dataType: 'json',
				success: function(results) {
						
					var currentUser = $('#userId').val();
						
					for(var i = 0, l = results.length; i<l; i++){
						if(currentUser == results[i].userid){
							template = Handlebars.compile( $('#currentUser_comment_template').html() );
							$('#comments_table').append( template(results[i]) );
						}else{
							template = Handlebars.compile( $('#comment_template').html() );
							$('#comments_table').append( template(results[i]) );
						}
					}
				}
			});


шаблоны:
<script id="currentUser_comment_template" type="text/x-handlebars-template">
					<tr comment_id="{{comment_id}}">
						<td class="col-md-3">
							<p>{{ comment_datetime }}</p>
							<p><strong>Имя пользователя:</strong></p>
							<p>{{ username }}</p>
						</td>
						<td class="col-md-9">
							<p>{{ comment }}</p>
							
								<p class="btn btn-default">Удалить</p>
								<p class="btn btn-default">Редактировать</p>
						</td>
					</tr>
				</script>
				
				<script id="comment_template" type="text/x-handlebars-template">
					<tr comment_id="{{comment_id}}">
						<td class="col-md-3">
							<p>{{ comment_datetime }}</p>
							<p><strong>Имя пользователя:</strong></p>
							<p>{{ username }}</p>
						</td>
						<td class="col-md-9">
							<p>{{ comment }}</p>
						</td>
					</tr>
				</script>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы