从骨干视图中调用jquery插件方法

时间:2013-10-03 18:00:28

标签: javascript jquery backbone.js loadimage

我试图从我的Backbone视图中的函数内调用loadImage库的loadImage.parseMetaData方法,但是它表示该方法未定义。第三方插件是这一个:

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) {

但是它找不到loadImage方法的parseMetaData部分。

非常感谢任何帮助。

非常感谢,

尤安

1 个答案:

答案 0 :(得分:2)

Javascript区分大小写。尝试使用loadimage.parseMetaData()而不是loadImage.parseMetaData(),以便它匹配函数签名中loadimage参数的大小写。