2017-07-10 1 views
1

Je dois changer ma taille de toile fabric.js dans mon application. Je possède ce sens dans mon controller.js:angular.js - définir la largeur et la hauteur de la toile farbricjs du tableau

kitchensink.controller('CanvasControls', function ($scope) { 

    $scope.canvas = canvas; 
    $scope.getActiveStyle = getActiveStyle; 

    addAccessors($scope); 
    watchCanvas($scope); 

    // Editing Canvas Size 
    // ================================================================ 

    $scope.setCanvasSize = function() { 
     console.log('Resizing now...'); 
     canvas.setWidth(presetSizes.width); 
     canvas.setHeight(presetSizes.height); 
     canvas.calcOffset(); 
    }; 

    $scope.presetSizes = [ 
     { 
      name: 'iPad Landscape', 
      height: 768, 
      width: 1024 
      }, 
     { 
      name: 'iPad Portrait', 
      height: 1024, 
      width: 766 
      }, 
     { 
      name: 'iPad Pro Landscape', 
      height: 1024, 
      width: 1366 
      }, 
     { 
      name: 'iPad Pro Portrait', 
      height: 1366, 
      width: 1024 
      } 
     ]; 


}) 

Je suis en train de mettre ma taille de toile dans mon index.html avec ng-cliquez comme ceci:

<x-menu> 
    <x-menuitem value="no_bg" ng-click='setCanvasSize(size.width, size.height)' ng-repeat='size in presetSizes' selected="true"> 
     <x-label>{{ size.name }}</x-label> 
    </x-menuitem> 
</x-menu> 

Je reçois le tableau avec {{ size.name }} mais Je fais évidemment quelque chose de mal pour le réglage/obtenir la largeur et la hauteur ...

Répondre

0

Vous n'avez pas des paramètres pour la largeur et la hauteur dans la setCanvasSize()

À côté de cela, qu'est-ce que presetSizes.width? Je ne vois pas cette variable dans votre contrôleur. Si vous voulez dire $scope.presetSizes Wich est un tableau dont vous avez besoin pour accéder au height et width par un index comme $scope.presetSizes[0].width

essayer vous changer $scope.setCanvasSize = function()-$scope.setCanvasSize = function (width, height) ou $scope.setCanvasSize = function (index) et de l'utiliser comme

$scope.setCanvasSize = function (index) { 
    console.log('Resizing now...'); 
    canvas.setWidth($scope.presetSizes[index].width); 
    canvas.setHeight($scope.presetSizes[index].height); 
    canvas.calcOffset(); 
}; 
//This one suits your question 
$scope.setCanvasSize = function (width, height) { 
    console.log('Resizing now...'); 
    canvas.setWidth(width); 
    canvas.setHeight(height); 
    canvas.calcOffset(); 
}; 
+0

Merci beaucoup Jordy! Travailler comme un charme. Je vois combien je dois apprendre :-) –

+0

@SandorRozsa votre accueil –