Как я могу сгенерировать массив из каждой строки текстового поля с помощью AngularJS
Я пытаюсь создать текстовое поле, вход которого привязан к массиву JS, где записи соответствуют каждой строке в текстовой области.
Я пытаюсь использовать ngList
с его необязательным параметром для указания разделителя. Я могу заставить его работать со значением по умолчанию (,
), добавив запятую после каждой строки текстового поля, но я действительно не хочу этого требовать.
текстовая область
<textarea ng-model="list"
rows="5"
ng-list="\n" >
</textarea>
с вводом:
test1
test2
test3
Сгенерированный вывод ["test1\ntest2\ntest3"]
Я ищу: ["test1","test2",test3"]
Plnkr Demo
Ответы
Ответ 1
Это обновление было обновлено в Angular 1.3 и теперь работает следующим образом:
<textarea ng-model="list" ng-list=" " ng-trim="false"></textarea>
- добавить
ng-trim="false"
директиву тегу <textarea>
- используйте код ASCII для символа новой строки:
Ответ 2
РЕДАКТИРОВАТЬ:. По сравнению с Angular 1,3, этот ответ устарел.
Из (1.2) ngList docs:
Если указано в форме/что-то/, то значение будет преобразовано в регулярное выражение.
Я только что добавил /
, и он магически сработает!
<textarea ng-model="list"
rows="5"
ng-list="/\n/" >
</textarea>
updated plnkr demo
Ответ 3
Вы можете разделить вывод angular:
var result = ["test1\ntest2\ntest3"][0].split("\n")
// result = ["test1", "test2", "test3"]
(Хотя решение, которое вы опубликовали, намного лучше!)