1

ループ内には、次のものがあります。

<div class="barcode" class="thumbnail"> 
  <canvas class="ean" barcode-generator barcode-value="9002236311036"> </canvas>
</div>

これは、大量のバーコードをループアウトします。バーコード値を静的に追加しましたが、意図はこれを {{barcodeNumber}} 経由で追加することです

数値をバーコードに変換する本当に素晴らしいプラグインhttps://github.com/joushx/jQuery.EAN13を見つけました。

さまざまなチュートリアルに従って、次のディレクティブを作成しました (ただし、方法や理由はまだよくわかりません)。また、Angular の上に jquery を含め、Angular の後にプラグインを含めました。

app.directive('barcodeGenerator', function () {
return {
  restrict: 'A',
  scope: {
    barcodeValue: '='
  },
  link: function (scope, elem, attrs) {
    console.log("Recognized the barcode directive usage");
    $('.ean').EAN13(scope.barcodeValue);
  }
}
});

console.log は機能しますが、プラグインを呼び出す部分は機能しません... Chrome デバッグで次のエラーが表示されます。

TypeError: オブジェクト 9002236311036 にはメソッド 'split' がありません

何が間違っているのかわかりません。フォーラムの投稿をたくさん読みましたが、理解できません。

ありがとう、ロブ

編集-以下のFranciscoの投稿に続いて- toString() を追加すると機能しました。唯一のことは、なぜ/どのようにこれが機能しているのかわかりません。

app.directive('barcodeGenerator', function () {
return {
  restrict: 'A',
  scope: {
    barcodeValue: '='
  },
  link: function (scope, elem, attrs) {
    console.log("Recognized the barcode directive usage");
    $('.ean').EAN13(scope.barcodeValue.toString());
  }
}
});

だから私は少しリファクタリングをしました:

app.directive('ean', function () {
return {
  restrict: 'C',
  scope: {
    barcodeValue: '='
  },
  link: function (scope, elem) {
    console.log("Recognized the barcode directive usage");
    $(elem).EAN13(scope.barcodeValue.toString());
  } 
}
});
  • HTMLをクリーンアップしたかったので、クラスを使用しました(Cを制限しますか?)-スコープ内にバーコード値を設定します。

次に、html に以下を追加しました。

<div class="barcode" class="thumbnail"> 
  <canvas class="ean" barcode-value="{{barcode}}"> </canvas>
</div>

そして、これがエラーの場所です...バーコード値。ハードワイヤードで機能する前に...今、ループに入れようとしましたが、そうではありません。

編集...

<div class="barcode" class="thumbnail"> 
  <canvas class="ean" barcode-value="barcode"> </canvas>
</div>

中括弧の削除は機能しました....うーん...マニュアルを入手する必要があります...

4

4 に答える 4

1

成功せずに動作するようなものを取得しようとしています..バーコードは表示されません..使用するすべてのコードをgithubに持っていますか?

于 2014-08-29T04:54:53.067 に答える
0

バーコードにこのライブラリを使用: https://github.com/joushx/jQuery.EAN13

app.directive('ean', function () {
return {
  restrict: 'C',
  scope: {
    barcodeValue: '='
  },
  link: function (scope, elem, attr) {
    console.log("Recognized the barcode directive usage");
    $(elem).EAN13(scope.barcodeValue.toString());
  }
}
});

<div class="barcode" class="thumbnail" ng-show="voucher.barcode">
<canvas class="ean" barcode-value="voucher.redemptionCode"> </canvas>
</div>

そして、私の記憶が正しければ、入力した数字はすべてバーコードに変換されます (ただし、これを行ってから 1 年以上経ちます...)

お役に立てれば

于 2014-09-09T13:31:36.567 に答える