代码之家  ›  专栏  ›  技术社区  ›  Belhanda

我从列表中删除了一个项目,同样的项目也从AngularJs中的另一个列表中删除

  •  0
  • Belhanda  · 技术社区  · 6 年前

    我有两个清单。他们俩都为我效劳。我的服务如下:

    我的服务:

     `function data (){
    
       var locationList={
               list: ''
       }
       var currentlocation = {
             editList : ''
       }
    
    return {
    
    
           getAllLocationList:function(){
    
               return locationList.list;
           },
    
          setAllLocationList:function(allLocationList){
              locationList.list = allLocationList; 
           },
    
           getCurrentList:function(){
    
               return currentlocation.editList;
           },
    
          setCurrentList:function(currentList){
              currentlocation.editList = currentList; 
           },
    
      }
     }`
    

    在我的控制器中,

    vm.location=data.getCurrentList();
    vm.allLocationList=data.getAllLocationList();
    

    vm。位置包含id、名称、关键字、编号和 vm。allLocationList包含名称、关键字、编号

    我还有关键字添加和关键字删除功能。当我进入keywordDelete函数以及从 vm.location 列表,然后自动从中删除相同的项目 vm.allLocationList 。相同的情况在keywordAdd函数上有效。你有什么想法吗?也许,服务结构不好。这是我第一次写的。 我已经工作了两天了。这还没有解决。

    1 回复  |  直到 6 年前
        1
  •  1
  •   fingeron    6 年前

    这是关于 Javascript execution context 。创建函数时,函数中的变量在其上下文中属于该函数。这意味着它们在以下情况下都是相似的 data()

    Javascript(我认为自ES5以来)支持面向对象编程,允许您创建一个对象,然后创建多个(半)独立的实例。

    function Data() {
       this.locationList={
               list: ''
       }
       this.currentlocation = {
             editList : ''
       }
    }
    
    Data.prototype = {
           getAllLocationList:function(){
               return this.locationList.list;
           },
          setAllLocationList:function(allLocationList){
              this.locationList.list = allLocationList; 
           },
           getCurrentList:function(){
               return this.currentlocation.editList;
           },
          setCurrentList:function(currentList){
              this.currentlocation.editList = currentList; 
           },
     }
    
    var data = new Data();
    

    我强烈建议你进一步阅读这个主题。这是许多JS混淆的核心。祝你好运