在一个循环中,我有:
<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 调试显示以下错误:
类型错误:对象 9002236311036 没有方法“拆分”
我不确定我做错了什么 - 已经阅读了很多论坛帖子,但不能完全理解它。
谢谢,罗伯
编辑——从下面弗朗西斯科的帖子开始——添加 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>
删除大括号有效....嗯...我需要一本手册...