2016-08-17 1 views
-1

Ich möchte die Verwendung Set-Methode der Fabrik, aber beide von Rückkehr Standard, wie kann ich das Problem beheben?Angular JS Werksfunktion

app.factory("DualListShareFactory", function(){ 

    var selectedArray=[]; 
    return{ 
     getSelectedArray: function() { 

      return selectedArray; 
     }, 

     setSelectedArray: function (array){ 

      selectedArray=array; 
     } 
    } 
}); 

Mit ng-Dual-Liste von https://github.com/tushariscoolster/ng-duallist

Ich tkining es nicht funktioniert: DualListShareFactory.setSelectedArray (vm.rightValue); Ich benutze andere Methode für und drücke aber ich bekomme den gleichen Fehler.

app.controller("duallist2", function($scope,DualListShareFactory){ 
    var vm=this; 
    vm.property='duallist2'; 
    activate(); 

    function activate() { 
     vm.leftValue = []; 
     vm.rightValue = []; 
     vm.addValue = []; 
     vm.removeValue = []; 

     function loadMoreLeft() { 
      for (var i = 0; i < $scope.incomingItem.length; i++) { 
       vm.leftValue.push({ 
        'name': $scope.incomingItem[i] 
       }); 

      } 
     }; 

     function loadMoreRight() { 
     } 


     vm.options = { 
      leftContainerScrollEnd: function() { 
      }, 
      rightContainerScrollEnd: function() { 
      }, 
      leftContainerSearch: function (text) { 
       console.log(text) 
       vm.leftValue = $filter('filter')(leftValue, { 
        'name': text 
       }) 

      }, 
      rightContainerSearch: function (text) { 

       vm.rightValue = $filter('filter')(rightValue, { 
        'name': text 
       }) 
      }, 
      leftContainerLabel: 'Gelen Parçalar', 
      rightContainerLabel: 'Seçilen Parçalar', 
      onMoveRight: function() { 
       console.log('right'); 
       console.log(vm.addValue); 

      }, 
      onMoveLeft: function() { 
       console.log('left'); 
       console.log(vm.removeValue); 
      } 

     }; 
     loadMoreLeft(); 

     var leftValue = angular.copy(vm.leftValue); 

     var rightValue = angular.copy(vm.rightValue); 

    } console.log(vm.rightValue); 
     DualListShareFactory.setSelectedArray(vm.rightValue); 
    }); 
+0

Ich reparierte Problem, das Sie mir Codeblock in Hauptfrage Teil –

+0

glaube ich versuchte finden ... –

Antwort

0

Ich bin nicht dies funktionieren wird, sondern versuchen, „das“,

app.factory("DualListShareFactory", function(){ 

    this.selectedArray=[]; 

    return{ 
     getSelectedArray: function() { 
      return this.selectedArray; 
     }, 

     setSelectedArray: function (array){ 
      this.selectedArray = array; 
     } 
    } 
}); 
+0

es nicht funktioniert hat, aber danke –

0
var app = angular.module("testapp", ["ng-duallist"]); 
app.factory("DualListShareFactory", function(){ 
    var selectedArray = []; 

    return{ 
     getSelectedArray: function() { 
      return selectedArray 
     }, 

     setSelectedArray: function (array){ 
      angular.copy(array, selectedArray); 
     } 
    } 
}); 

für diese mit dem anderen Codeblock hinzufügen, bevor Funktion endet.

onMoveRight: function() { 
     DualListShareFactory.setSelectedArray(vm.rightValue); 
    }, 
    onMoveLeft: function() { 
     DualListShareFactory.setSelectedArray(vm.rightValue); 
    } 

}; 
loadMoreLeft(); 


var leftValue = angular.copy(vm.leftValue); 

var rightValue = angular.copy(vm.rightValue); 
+0

ım richtigen Wert verwenden und es in Funktion crated. Deshalb verwende ich diesen Wert nicht außerhalb der Funktion. Ich muss die Variable factory function gleich dem rgiht Wert innerhalb einer Funktion haben –