Я пытаюсь вызвать метод loadImage.parseMetaData библиотеки loadImage изнутри функции в представлении Backbone, но он говорит, что метод не определен. Третий сторонний подключаемый модуль:
http://blueimp.github.io/JavaScript-Load-Image/
Я использую requirejs для приведения плагинов в файл main.js следующим образом:
require.config({
paths: {
jquery: 'vendor/jquery/jquery',
loadimage: 'vendor/loadimage/load-image',
loadimageorientation: 'vendor/loadimage/load-image-orientation',
loadimageios: 'vendor/loadimage/load-image-ios',
loadimageexif: 'vendor/loadimage/load-image-exif',
loadimageexifmap: 'vendor/loadimage/load-image-exif-map',
loadimagemeta: 'vendor/loadimage/load-image-meta',
....
На мой взгляд, я создаю его так, чтобы я мог получить доступ к стороннему подключаемому модулю:
define([
'jquery',
'underscore',
'backbone',
'channel',
'views/views.base',
'models/model.image','jcrop', 'loadimage', 'loadimageorientation', 'loadimageios', 'loadimageexif', 'loadimageexifmap', 'loadimagemeta'
], function($, _, Backbone, Channel, BaseView, ImageModel, jcrop, loadimage, loadimageorientation, loadimageios, loadimageexif, loadimageexifmap, loadimagemeta){
/**
*
* @class AddView
* @constructor
* @extends BaseView
*/
var AddView = BaseView.extend({
...
В моей функции загрузки изображения я пытаюсь вызвать сторонний метод "loadImage", но он говорит, что loadImage не определен. Очевидно, что область здесь неверна для вызова глобального стороннего метода. Мне интересно, как я должен это сделать:
imageSelected: function(e){
e = e.originalEvent;
var target = e.dataTransfer || e.target,
that = this,
file = target && target.files && target.files[0],
options = {
maxWidth: 670,
canvas: true,
contain: true
};
if (!file) {
return;
}
loadImage.parseMetaData(file, function (data) {
if (data.exif) {
that.exifData=data.exif;
}
that.displayImage(file, options);
});
},
Я пробовал делать:
$(this.el).loadImage.parseMetaData(file, function (data) {
Но тогда он не может найти часть parseMetaData метода loadImage.
Любая помощь будет принята с благодарностью.
Спасибо заранее,
Euan
Javascript чувствителен к регистру. Попробуйте loadimage.parseMetaData() вместо loadImage.parseMetaData(), чтобы он соответствовал оболочке вашего параметра loadimage в сигнатуре функции.