Я новичок в Angular и, возможно, пытаюсь использовать его некорректно, но.. У меня есть этот код - ввод для ввода URL-адреса и ссылки для перехода к этому URL-адресу.
<div>
<input type="text" ng-model="url0">
<a href="{{url0}}">goto</label>
</div>
Класс cool, href теперь синхронизирован с вводом. Теперь я хочу клонировать этот div, заменяя url0 на url1. Но как сделать обязательную работу над новым div?
Прекратите думать с точки зрения манипуляций с DOM. DOM-манипуляция - это зло. Угловая конструкция позволяет максимально избегать манипуляций с DOM.
Подумайте об объектах и массивах в модели и шаблоне, который отображает эту модель.
Так, например:
$scope.items = [
{
url: 'foo';
}
];
$scope.addItem = function() {
$scope.items.push({
url: '';
});
};
И в шаблоне:
<div ng-repeat="item in items">
<input type="text" ng-model="item.url">
<a ng-href="{{item.url}}">goto</a>
</div>
<button ng-click="addItem()">Add an item</button>
Манипулирование DOM с помощью углового не рекомендуется. Вот как я это сделаю:
HTML:
<input id="url-input" type="text"/>
<button id="go-button">GO</button>
JS:
var input,
go_button,
url;
input = document.getElementById("url-input");
go_button = document.getElementById("go-button");
go_button.addEventListener("click", function(){
url = input.value;
window.location.href = url;
});
ngRepeat
и$index
.