Подтвердить что ты не робот

Динамически изменяйте содержимое div на другом элементе (AngularJS)

Итак, я новичок в AngularJS, и я пытаюсь изменить содержимое div после того, как щелкнули другого (этот содержит div с содержимым, которое я хочу разместить на первом).

HTML

<div ng-controller="dCtrl">
    <ul ng-repeat="product in products">
        <li change>
            {{product.name}}
            <div class="hide">{{product.description}}</div>
        </li>
    </ul>
</div>

<div id="test"></div>

Javascript

var app = angular.module("dt", []);

app.directive("change", function() {

    return function(scope, element) {

        element.bind("click", function() {
           var message = element.children("div").text();
           console.log("breakpoint");

           angular.bind("#test", function() {
               this.text(message);
           });
        })
    }
})

app.controller("dCtrl", function($scope) {

$scope.products = [
    { "name" : "Escova XPTO", "description": "Lava tudo num instante"},
    { "name" : "Pasta de Dentes YMZ", "description": "Dentifrico do camandro"}
];

})

Я знаю, что могу просто сказать:

$("#test").html(message);

Но я все еще запутался в смешении jQuery и AngularJS, я не знаю, правильно ли это это сделать.

Спасибо

4b9b3361

Ответ 1

Настройка ng-click:

ngClick предназначен для таких вещей, как страшный материал jQuery-esque, который вы используете в своей директиве об изменении. Поместите ng-click в ваши интерактивные атрибуты div и передайте метод, который изменяет переменную $scope, принятую...

ngShow и ngHide.

Когда true, эти директивы, как указано в названии, показывают или скрывают связанный объект html. Вы можете передать переменные $scope, определяющие логическое значение. Когда $scope обновляет эти методы, автоматически обновляет DOM, чтобы показать/скрыть элемент.