Chciałbym programowo dodać niektóre elementy DOM z obsługą Angula. Właściwie to prawdopodobnie będę musiał dodać niestandardowe komponenty. Jak mogę to zrobić?Jak dodać elementy z obsługą Angular do DOM?
Oto trywialne skrzypce do wykazania problem: http://jsfiddle.net/ZJSz4/2/
HTML:
<div ng-app="main">
<div ng-controller="MyCtrl">
<button ng-click="add()" >Add</button>
<div id="container">
<div>{{test}}</div>
</div>
</div>
</div>
JS:
angular.module("main", []).controller("MyCtrl", function($scope) {
$scope.add = function() {
$("#container").append("<div>{{test}}</div>");
};
$scope.test = 'Test Message';
});
Tylko w przypadku, można oczekiwać, że dodać div pokazując „Test Wiadomość "za każde kliknięcie - nie {{test}}.
Dlaczego jest to potrzebne? Cóż, chciałbym mieć kilka sortowalnych kolumn (w sensie sortowalnym jQuery) z portletami. Wyobrażam sobie, że każdy portlet może być komponentem.
Czy wspinam się na niewłaściwym wzgórzu? Jaki jest kątowy sposób rozwiązania tego problemu?
EDIT: Miałem nadzieję, że ten uproszczony przykład nie zakończy się tak, ale tak czy inaczej. Ostatecznym celem nie jest wyświetlenie elementu div dla każdego elementu w tablicy.
To, czego naprawdę chcę, to bardziej złożony kontroler. Potrzebuję kontener portletu z pewnym interesującym zachowaniem. Może zaistnieć potrzeba decyzji o umieszczeniu każdego portletu w innej kolumnie. Może oferować zmianę układu i porządny sposób na reorganizację portletów w takim przypadku. I tak dalej.
pan przejść przez samouczek w docs w Internecie? powinieneś to zrobić najpierw. Musisz pozwolić swojemu modelowi na prowadzenie interfejsu użytkownika. jeśli potrzebujesz więcej "testów", utwórz szereg testów i dodaj/usuń elementy. widok zaktualizuje się automatycznie. – mpm