В цикле, у меня есть:Попытки преобразовать Jquery плагин угловых директив
<div class="barcode" class="thumbnail">
<canvas class="ean" barcode-generator barcode-value="9002236311036"> </canvas>
</div>
Каких петли из нагрузки штриховых кодов. Я статически добавил значение штрих-кода, но намерение состоит в том, чтобы это было добавлено через {{barcodeNumber}}
Я нашел действительно хороший плагин https://github.com/joushx/jQuery.EAN13, который преобразует число в штрих-код.
Следуя различным учебным пособиям, я написал следующую Директиву (хотя я пока не совсем понимаю КАК или ПОЧЕМУ). Я также включил jquery выше Angular и плагин после 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 не имеет какого-либо метода «расколоть»
Я не уверен, что я делаю не так - прочитал много сообщений на форуме, но не могу это понять.
Спасибо, Роб
Edit - вслед за пост-Франциско ниже - добавление 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>
И это, где это ошибка ... штрихкод значение. Прежде чем он работал и работал ... теперь я пытаюсь поместить его в цикл, это не так.
Edit ...
<div class="barcode" class="thumbnail">
<canvas class="ean" barcode-value="barcode"> </canvas>
</div>
Снятие фигурные скобки работал .... хм ... мне нужно, чтобы получить пособие ...
Split является частью объекта String в javascript. Если 9002236311036 является целым числом, у него не будет доступа к методу split. Может быть, сначала попробуйте превратить его в строку? –
Спасибо - это работает :) Я добавил toString на конце, и он функционирует хорошо. Я все еще не знаю, почему это работает, хотя ... – Rob
Рад, что это помогло! Вы имеете в виду, что не понимаете, как работают директивы? –