Вызов методов jquery-плагина из основного представления

0

Я пытаюсь вызвать метод 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

Теги:
backbone.js

1 ответ

2

Javascript чувствителен к регистру. Попробуйте loadimage.parseMetaData() вместо loadImage.parseMetaData(), чтобы он соответствовал оболочке вашего параметра loadimage в сигнатуре функции.

  • 0
    Отлично, спасибо! : D Глупый я, что не заметил этого. Это сделало мою ночь намного более продуктивной. Вы святой!
  • 1
    @EuanMillar обязательно пометьте ответ автора как ответ на ваш вопрос.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню