Удалить элемент из контроллера

0

Я должен удалить элемент из моей таблицы в моем контроллере. Проблема в том, что я не использую область, в которой я использую контроллер функций. Если я попытаюсь добавить функцию, произойдет сбой и выдаст ошибку.

Надеюсь, вы, ребята, можете мне помочь

HomeController:

// homeController.js


(function () {
    'use strict';
    angular.module('myApp')
        .controller('homeController', homeController);


    function homeController() {
        var vm = this;
        vm.autos = [
            {id: 1, 'Omschrijving': 'A 180', Prijs: '24.242 € ', Type: 'A'},
            {id: 2, 'Omschrijving': 'A 180 CDI BlueEFFICIENCY', Prijs: '26.015 € ', Type: 'A'},
            {id: 3, 'Omschrijving': 'B 200 CDI BlueEFFICIENCY', Prijs: '30.129 € ', Type: 'B'},
            {id: 4, 'Omschrijving': 'C 250 CGI BlueEFFICIENCY', Prijs: '40.414 € ', Type: 'C'},
            {id: 5, 'Omschrijving': 'C 300 CDI 4MATIC BlueEFFICIENCY', Prijs: '48.642 € ', Type: 'C'},
            {id: 6, 'Omschrijving': 'C 350 CGI 4MATIC BlueEFFICIENCY', Prijs: '50.941 € ', Type: 'C'},
            {id: 7, 'Omschrijving': 'CL 500 CDI 4MATIC BlueEFFICIENCY', Prijs: '129.954 € ', Type: 'CL'},
            {id: 8, 'Omschrijving': 'CL 600', Prijs: '170.489 € ', Type: 'CL'}
        ];
    }


};
})();

home.html

<div>
    <table style="text-align: left;">
    <th>
    Omschrijving
    </th>
    <th>
    Prijs
    </th>
    <th>
    Type
    </th>
        <tr ng-repeat="autos in homeCtrl.autos">
        <td width="75%">
            <a ng-href="#/detail/{{autos.id}}">
            {{ autos.Omschrijving }}
            </a>
            </td>
            <td width="25%">
            {{ autos.Prijs }}
            </td>
            <td width="25%">
            {{ autos.Type}}
            </td>
            <td>
            <a ng-click="delete(something)">Delete</a>
            </td>
        </tr>
    </table>
    <a href="#/add">Auto Toevoegen</a>

</div>

Поэтому я просто хочу знать, как я могу добавить функцию в своем представлении и мой контроллер для удаления элемента.

  • 0
    Вы пробовали что-нибудь?
  • 0
    @MadaraUchiha хорошо, да, попытался работать с областью всего, но получить ошибки в моем контроллере, чем. Должна быть другая проблема только в том, что я понятия не имею
Теги:
angularjs-ng-repeat

1 ответ

0
Лучший ответ
    // homeController.js


(function () {
    'use strict';
    angular.module('myApp')
        .controller('homeController', homeController);


    function homeController() {
        var vm = this;
        vm.autos = [
            {id: 1, 'Omschrijving': 'A 180', Prijs: '24.242 € ', Type: 'A'},
            {id: 2, 'Omschrijving': 'A 180 CDI BlueEFFICIENCY', Prijs: '26.015 € ', Type: 'A'},
            {id: 3, 'Omschrijving': 'B 200 CDI BlueEFFICIENCY', Prijs: '30.129 € ', Type: 'B'},
            {id: 4, 'Omschrijving': 'C 250 CGI BlueEFFICIENCY', Prijs: '40.414 € ', Type: 'C'},
            {id: 5, 'Omschrijving': 'C 300 CDI 4MATIC BlueEFFICIENCY', Prijs: '48.642 € ', Type: 'C'},
            {id: 6, 'Omschrijving': 'C 350 CGI 4MATIC BlueEFFICIENCY', Prijs: '50.941 € ', Type: 'C'},
            {id: 7, 'Omschrijving': 'CL 500 CDI 4MATIC BlueEFFICIENCY', Prijs: '129.954 € ', Type: 'CL'},
            {id: 8, 'Omschrijving': 'CL 600', Prijs: '170.489 € ', Type: 'CL'}
        ];

        vm.delete = function(id){
            // delete vm.autos[id];
           vm.autos.splice(id-1, 1); // this is better
        }
    }



})();

home.html

<div>
    <table style="text-align: left;">
    <th>
    Omschrijving
    </th>
    <th>
    Prijs
    </th>
    <th>
    Type
    </th>
        <tr ng-repeat="autos in homeCtrl.autos">
        <td width="75%">
            <a ng-href="#/detail/{{autos.id}}">
            {{ autos.Omschrijving }}
            </a>
            </td>
            <td width="25%">
            {{ autos.Prijs }}
            </td>
            <td width="25%">
            {{ autos.Type}}
            </td>
            <td>
            <a ng-click="homeCtrl.delete(autos.id)">Delete</a>
            </td>
        </tr>
    </table>
    <a href="#/add">Auto Toevoegen</a>

</div>
  • 0
    Хорошо, это работает, единственная проблема - я не могу нажать ее дважды, если я хочу удалить другую машину, она выдает ошибку: Дубликаты в повторителе не допускаются. Используйте выражение «track by» для указания уникальных ключей. Повторитель: autos в homeCtrl.autos, Дубликат ключа: не определено: не определено, Дубликат значения: не определено
  • 0
    Вы можете использовать «track by» в ng-repeat в случае, если существуют избыточные идентификаторы. то есть используйте <tr ng-repeat = "autos в homeCtrl.autos track by autos.id"> вместо <tr ng-repeat = "autos в homeCtrl.autos">
Показать ещё 2 комментария

Ещё вопросы

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