$ scope в href - AngularJS

0

У меня есть массив, как показано ниже;

$scope.cart = [];

Это содержит элементы, такие как id, имя и т.д.

Как включить элементы в href как href ниже;

<a href="http://www.example.co.uk/search-menu/{{$scope.cart.restaurant_id}}/test">

Это не работает.

Я также попытался использовать ng-repeat=item in cart

FYI Когда я console.log($scope.cart) я получаю следующее:

[Object]
0: Object
cookie_id: "j0m3hdkf4c371nueajdi9gf4f3"
date: "0000-00-00"
day: ""
id: "92"
location: ""
restaurant_id: "1"
time: "00:00:00"
user_id: "63"
  • 0
    Выражение не нуждается в $ scope

3 ответа

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

Его Магия в двух направлениях Передача данных

Использовать директиву ng-href в angularjs

Удалите $scope в теге привязки. Вы напрямую получаете доступ к переменной области видимости. В части контроллера только мы используем объект $scope не нужен для представления html.

<a ng-href="http://example.co.uk/search-menu{{cart[0].restaurant_id}}/test">
  • 0
    Не работает. Пожалуйста, проверьте мои изменения.
  • 0
    Опять вы ошибаетесь, повторяя ng-элемент, но вы использовали корзину в теге привязки
Показать ещё 5 комментариев
0

ng-repeat должен работать на самом деле. Но вы должны попробовать его с помощью ng-href, как ng-href ниже...

В вашем HTML:

ng-repeat="item in cart" ng-href="yourUrl/{{item.id}}"

В вашем контроллере:

$scope.cart = [ cart1, cart2, ...];

Если у вас появятся какие-либо ошибки, я действительно помогу их увидеть здесь!

0

Первое, что я сделал бы, это удалить область $scope в вашем контроллере и заменить ее на this

this.cart = [];

Затем в вашем View вы можете использовать объявление Controller As, после чего вы получите точечную нотацию (что лучше для этого)

например

    <div data-ng-controller="CartController as cart">
        <a ng-href="http://www.example.co.uk/search-menu/{{cart[0].restaurant_id}}/test">
    </div>

Ещё вопросы

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