Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Ангулар и неразделимый пробел: как подружить? (https://javascript.ru/forum/angular/63233-angular-i-nerazdelimyjj-probel-kak-podruzhit.html)

Mister N 25.05.2016 13:06

Ангулар и неразделимый пробел: как подружить?
 
Вот такая проблема. Хочу сделать аутокомплит со сложной иерархией (в availableTags все проще, чисто для примера)
Но вот проблема в том, что ангулар эскейпит неразделимый пробел и вместо пробела пользователь видит страшное.
Раньше все селекты со сложной иерархичной структурой, жили на чистом html и иерархия задавалась с помощью собсна неразделимых пробелов.
типа того
<select>
<option>Родитель</option>
<option>&nbsp;&nbsp;Потомок</option>
<option>Что-то следующее</option>
</select>


Все отлично работало, покуда значений в селектах не стало много.
И сделан был аутокомплит на jquery ui навроде такого http://jqueryui.com/autocomplete/#combobox и добавлением специального класса к селекту, превращало оный в инпут с аутокомплитом - довольно удобно и все было отлично, пока не решили мы переходить на ангулар.
Я погуглил, нашел вот статью, накопипостил подобное, но как справиться и что вотворять, чтобы пробелы появились - не пойму.

Rise 25.05.2016 14:50

Mister N, почему optgroup не используете?

Mister N 25.05.2016 15:12

там же только два уровня вложенности?

MetaDriver 02.06.2016 14:17

Цитата:

Сообщение от Mister N (Сообщение 417571)
Вот такая проблема. ... в том, что ангулар эскейпит неразделимый пробел и вместо пробела пользователь видит страшное....

С селектом конкретно не проверял (неактуально), но обычно в подобных случаях делаю следующее (osь - винда): иду в Главное меню/Таблица символов/Диапазоны юникода/Обычная пунктуация. Там в четвёртой строке множество видов юникодовских пробелов, которые нормально кушает и ХТМЛ и ангулар. Выбираю подходящие и вставляю прямо в разметку в нужном количестве. Их же можно использовать и в JS, если нужно соорудить несжимаемые ХТМЛем пробелы в строках (при необходимости - добавить в цикле нужное количество).
Удачи.
Пример:  раз      два         три

Mister N 02.06.2016 14:59

Спасибо, надо глянуть дома. Это выход, однако. Я правда заменил на классы css с нужным паддингом, но это нихт зер гуд конечно.
А было бы здорово, если кто-нибудь все-таки подсказал, как отучить ангуляр эскейпить.

inv0 02.06.2016 23:34

тут дело не в ангуляре. вот решение
ps: select для того что бы при выборе в input не падали символы
$(element).autocomplete({ source: opts.source, select: function( event, ui ) {
    ui.item.value = $("<p>").html(ui.item.value).text();
}}).data("ui-autocomplete")._renderItem = function( ul, item ) {
    return $( "<li>" )
        .data( "item.autocomplete", item.value )
        .append( $('<a>').html(item.label) ) 
        .appendTo( ul );
};


Часовой пояс GMT +3, время: 16:48.