Javascript 从控制器中删除项目
我必须从控制器中的表中删除一项 问题是我没有使用作用域,而是使用函数控制器。 如果我试图添加一个函数,就会崩溃并给出一个错误 希望你们能帮助我 家庭控制器:Javascript 从控制器中删除项目,javascript,angularjs,html,angularjs-ng-repeat,Javascript,Angularjs,Html,Angularjs Ng Repeat,我必须从控制器中的表中删除一项 问题是我没有使用作用域,而是使用函数控制器。 如果我试图添加一个函数,就会崩溃并给出一个错误 希望你们能帮助我 家庭控制器: // homeController.js (function () { 'use strict'; angular.module('myApp') .controller('homeController', homeController); function 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>
<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>
OMSCHRIJING
普里斯
类型
{{autos.Prijs}}
{{autos.Type}
所以基本上我只需要知道如何在视图和控制器中添加一个函数来删除一个项目
// 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="delete(something)">Delete</a>
</td>
</tr>
</table>
<a href="#/add">Auto Toevoegen</a>
</div>
<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>
OMSCHRIJING
普里斯
类型
{{autos.Prijs}}
{{autos.Type}
你试过什么吗?@MadaraUchiha嗯,是的,试过处理scope所有东西,但在我的控制器中出现错误。应该有另外一种方法唯一的问题是我没有clueWell,唯一的问题是我不能按两次,如果我想删除另一辆车,它会给出错误:中继器中不允许重复。使用“跟踪依据”表达式指定唯一关键点。Repeater:autos在homeCtrl.autos中,重复键:未定义:未定义,重复值:未定义如果存在冗余id,您可以在ng repeat中使用“跟踪方式”。即,不允许在中继器中使用而不是重复。使用“跟踪依据”表达式指定唯一关键点。Repeater:autos in homeCtrl.autos track by autos.id,Duplicate key:undefined,Duplicate value:undefined仍然是同一个错误根据您提供的信息,我解决了它您告诉我的问题:我仍然收到一个关于autos.id的错误,现在我将其更改为,所有问题都解决了,谢谢