2016-10-20 2 views
-1

Если кто-то может помочь, я был бы очень благодарен. Я довольно новичок в AngularJS и пытаюсь его изучить. Проблема у меня в том, что один из контроллеров не вызывается, когда кнопка Купленный нажатаКонтроллер AngularJS не вызывается из html

<div class="col-md-6" ng-controller="AlreadyBoughtController as Items"> 
       <h2>Already Bought:</h2> 
       <ul ng-repeat="bought in Items.ItemsBought track by $index"> 
        <li>Bought {{bought.quantity}} {{bought.name}}</li> 
       </ul> 
       <div class="emptyMessage" ng-if="Items.ItemsBought.length === 0">Nothing bought yet.</div> 
      </div>. 

Пожалуйста, смотрите полный код с app.js файла на plunker: http://plnkr.co/edit/8wKY7PPZ6mINsFGCJQfP?p=preview

+0

Вы можете отлаживать это, поместив '{{Items}}' где-то под тем, где вы определяете 'AlreadyBoughtController в качестве предметов '- вы увидите, что CTRL на самом деле загружается нормально, но добавление« купленного »элемента происходит как null. http://embed.plnkr.co/Mhoa50ClNcbOPbC1D2Py/ Ошибка возникает из вашей реализации, чтобы добавить купленные предметы. –

+0

Да, я вижу это, но мне нужен кто-то, кто объяснит мне, почему он приходит как нуль и что я делаю неправильно. Спасибо –

ответ

0

Это потому, что вы никогда не были на самом деле прохождения индекс предмета, который вы купили.

<li>Buy {{item.quantity}} {{item.name}} <button class="btn btn-default" ng-click="itemsToBuy.boughtItems($index);"><span class="glyphicon glyphicon-ok"></span> Bought</button></li> 

Pass $index вашей функции: ng-click="itemsToBuy.boughtItems($index);

Посмотрите на фиксированной plunk.

+0

Aniket, большое вам спасибо. Я знал, что это должно быть что-то простое, но я не мог понять. Еще раз, большое спасибо. –

+0

Ничто не говорит спасибо лучше, чем принятый ответ/upvote. :) –

Смежные вопросы