Директива Angularjs + Изолировать двустороннее связывание данных не работает

0

Я пытаюсь обновить список, используя шаблон директивы. Но он не обновляет данные после HTTP-запроса.

test.html:

<div ng-repeat=" comment in [{name:"A"},{name:"B"},{name:"C"}]">
    <div lookup-product-icon lookup="lookupProduct(comment)"   products="products"></div>
</div>
<div lookup-products></div>
....

Директива:

var app = angular.module('myApp');
app.directive('lookupProductIcon', function() {
    return {
        scope : {
            lookup : "&"
        },
        template : '<div  ng-click="lookup()">Use me!</div>',
    };
});

app.directive('lookupProducts', function() {
    return {
        restrict : 'EA',
        transclude : false,
        scope : {
            products : '='
        },
        templateUrl : 'lists.html'
    };
});

контроллер

$scope.products = [];
        $scope.lookupProduct = function(lists) {
                var details = {
                name : lists.name,
                host : $scope.host_name
            };
            productService.lookupProduct(details).then(function(data) {
                $scope.products = data.list;
                console.log($scope.products);
                //Here display the lists in developer tools.
            }).catch(function(data) {
                if (data.message) {
                    alert(data.message);
                }
            });

        };

list.html:

<ul>
  <li ng-repeat = "product in products">    {{product.name}}    </li>
</ul>

Как только я нажму "Использовать меня!" значит, мне нужно отправить http-запрос, а затем отобразить списки для соответствующего содержимого в list.html.

Функция lookupProduct работает, но только вещь - это продукты, которые не обновляются.

Детали:

Я добавил две директивы. 1. lookupProductIcon - отобразить текст. После того, как этот текст щелкнул, нужно выполнить запрос http get, а затем ответ нужно обновить в list.html (директива lookupProducts). 2. lookupProducts - Здесь данные не обновляются.

  • 0
    Вы определяете продукты внутри директивы lookup-products, но используете в lookup-product-icon lookup. Почему?
  • 0
    Я использую много страниц этого модуля. Итак, я создал lookup-product-icon.
Показать ещё 2 комментария
Теги:
scope
angularjs-directive
isolate-scope

1 ответ

0
Лучший ответ

Ваша lookupProducts директива имеет область переменных products, которые не передаются в вашем HTML - разметки.

Вам нужно передать массив продуктов в директиву lookupProducts.

<div lookup-products products="products"></div>

  • 0
    О Боже. Это только моя ошибка. Спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню