2017-03-05 48 views
0

在項目中,我使用JsBarcode庫生成條形碼。在這裏我使用了ng-click指令來生成條形碼。在這裏,我需要使用角度數據綁定功能來更改生成的條碼的屬性。我盡我所能地理解,但沒有奏效。最後,我添加了數據綁定到相同的功能,現在我必須點擊按鈕來更新條形碼。請任何人都可以幫助我實現這一點使用角度數據綁定功能?更改使用按鈕單擊生成的Angular中的對象的屬性

這是腳本的一部分,我用它來生成條形碼

$scope.CreateTable = function(){ 
window.setTimeout(function() { 
      JsBarcode('#barcode', ProductDescription, { 
       //format: 'CODE39', 
       flat:true, 
       displayValue: false, 
       margin:0, 
       marginLeft: 20, 
       marginRight: 0, 
       marginTop: 0, 
       marginBottom: 0,    
       height: $scope.calculateHeight(), 
       width: (1 + ((((($scope.paperSelection/$scope.numberOfColumns)-60) - (31.5 + 9.9 * ($scope.ProductDescription.length)))/(3.5 + 1.1 * ($scope.ProductDescription.length))) - 1) * 0.1) 
      }); 
     }); 
} 

$scope.calculateHeight = function() { 
     if (($scope.showNameOnTop == undefined || $scope.showNameOnTop == false) && ($scope.showNameOnBottom == undefined || $scope.showNameOnBottom == false) && ($scope.showDetails == undefined || $scope.showDetails == false)) { 
      return $scope.heightOfSticker - 30; 
     } 
     else if (($scope.showNameOnTop == true && ($scope.showNameOnBottom == false || $scope.showNameOnBottom == undefined) && ($scope.showDetails == false || $scope.showDetails == undefined)) || ($scope.showNameOnBottom == true && ($scope.showNameOnTop == false || $scope.showNameOnTop == undefined) && ($scope.showDetails == false || $scope.showDetails == undefined)) || ($scope.showDetails == true && ($scope.showNameOnBottom == false || $scope.showNameOnBottom == undefined) && ($scope.showNameOnTop == false || $scope.showNameOnTop == undefined))) { 
      return $scope.heightOfSticker - 40; 
     } 
     else if (($scope.showNameOnTop == true && $scope.showNameOnBottom == true && ($scope.showDetails == undefined || $scope.showDetails == false)) || ($scope.showNameOnTop == true && $scope.showDetails == true && ($scope.showNameOnBottom == undefined || $scope.showNameOnBottom == false)) || ($scope.showNameOnBottom == true && $scope.showDetails == true && ($scope.showDetails == undefined || $scope.showDetails == false))) { 
      return $scope.heightOfSticker - 60; 
     } 
    }; 

我只需要改變條形碼後高度沒有運行CREATETABLE總是被加載。

+0

你打算捕捉任何事件來改變高度嗎?或者你想如何改變身高? –

+0

我需要在加載條形碼後更改它的高度(需要更改JsBarcode的** height **屬性)。假設我有輸入類型編號,並且需要使用角度數據綁定功能根據給定的輸入更改height屬性的值。如何做呢 ? –

+0

嘗試我給你的答案,可能工作@ Thidasa –

回答

1

創建條形碼時使用ng-class選項。根據條件你可以改變父div。還可以嘗試設置條碼高度100%,這將佔用父div的全部空間,並相應地用ng-class更改父div高度。

<p ng-class="{class1 : expression1, class2 : expression2}">Changing css value</p> 
+0

但改變div高度並沒有幫助。我試圖通過改變包含條形碼的div來改變條形碼的高度。但即使div小於它,它也需要默認高度(100px)。我可以改變條形碼高度的唯一方法是改變它的高度屬性的值。 –

+0

你可以讓條碼的高度100%然後嘗試? –

+1

我通過在複選框中使用ng-checked添加條形碼生成函數調用來解決此問題。 感謝您的幫助 –