2016-08-17 113 views
-1

我想使用工廠的set方法,但都返回默認我該如何解決這個問題?Angular JS的工廠函數

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

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

      return selectedArray; 
     }, 

     setSelectedArray: function (array){ 

      selectedArray=array; 
     } 
    } 
}); 

https://github.com/tushariscoolster/ng-duallist

採用NG-雙列表我tkining它不工作:DualListShareFactory.setSelectedArray(vm.rightValue); 我使用其他方法和推,但我收到同樣的錯誤。

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

我固定的問題,你可以找到主要問題部分的代碼塊 –

+0

相信我,我想...... –

回答

0

我不是這個工作,但嘗試「本」,

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

    this.selectedArray=[]; 

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

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

它沒有工作,但使用權價值謝謝 –

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); 
     } 
    } 
}); 

使用此函數結束前添加其他代碼塊。

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

IM,它在功能上裝箱。因爲我不使用此功能的功能。我必須將工廠函數的變量等同於函數中的rgiht值 –