如何在角度js中添加项目数组?
我想做两个指令沟通。我有两个指令:一个是表指令,另一个是标题指令。 在标题上我有两个按钮“加”和删除。我想在点击添加按钮时在列表中添加一个元素,并在用户单击删除按钮时删除该元素。如何在角度js中添加项目数组?
但是这个列表是一个不同的指令,我如何在删除和添加动作后更新数组?
Here是我的代码。
.directive('tm',function(){
return {
restrict: 'E',
templateUrl: 'login.html',
scope: {
},
controller: 'f',
controllerAs: 'vm'
};
})
.controller('f',function($http, $scope){
var vm = this;
$http.get('data.json').success(function(data){
vm.data = data;
})
})
.controller('abc',function($http, $scope){
})
.directive('h',function(){
return {
restrict: 'E',
templateUrl: 'header.html',
scope: {
},
controller: 'he',
controllerAs: 'h'
};
})
.controller('he',function($http, $scope){
var h =this;
h.add=function(){
alert('heelo')
}
h.delete=function(){
alert('delete')
}
})
我需要用户按在列表中的默认值({name: 'abc', lastname: 'pqr'})
当点击添加按钮,它应该更新列表。当用户点击删除时,它删除最后一个元素并更新列表。
更新plunker服务器运行的不是
我做小提琴 https://jsfiddle.net/8fjhLqnw/
我需要在列表中添加一个项目时添加按钮是press..and删除一个项目时,删除按钮是按
首先创建服务共享这样的数据和功能:
service('sharedData', function(){
var vm = this;
vm.list = [];
vm.add=function(item){
vm.list.push(item);
}
vm.get = function(){
$http.get('data.json').success(function(data){
vm.data = data;
})
}
vm.delete=function(item){
// use slice for delete object from list
}
})
然后你必须注入这个服务E在你的指令:
controller('he', function($http, $scope, sharedData)
,并使用sharedData
在你的函数:
h.add=function(item){
sharedData.add(item)
}
它自动反映? – user944513
请提供小提琴https://jsfiddle.net/8fjhLqnw/ – user944513
我提供了你。只需添加即可实施。您可以像abc一样简单地实现删除。 –
两种解决方案: 1)谁创建存储数据的服务。注入两个控制器。并且每次都从服务中编辑/获取数据。该服务是单例 2)您的指令没有隔离范围,因此它们使用父控制器范围。在父控制器范围中创建一个变量,并在两个指令中使用它 – AlainIb
你可以添加html如何使用这个指令? – Grundy
gudy ..我加入plunker ..plunker服务器down ..所以我试图让小提琴 – user944513