未捕获的ReferenceError:未定义dicomParser

时间:2015-10-01 22:45:48

标签: backbone.js requirejs dicom cornerstone

  

未捕获的ReferenceError:未定义dicomParser   hr.onreadystatechange @ cornerstoneWADOImageLoader.js:4156

我正在使用backbone,node.js和require.js进行我的应用程序。

CornerstoneWADOImageLoader失败,因为它找不到dicomParser,但我已经定义了它。

使用cornerstoneWADOImageLoader需要jQuery,基石和dicomParser。

有什么不对吗?

同样Uncaught cornerstone.enable(element);会返回此错误

  

TypeError:element.appendChild不是函数

代码:

//boot.js
require.config({
        paths: {
        jquery:                 '/js/lib/jquery',
        jqueryui:               '/js/lib/jquery-ui',
        'jquery.ui.widget' :    '/js/lib/jquery.ui.widget',
        underscore:             '/js/lib/underscore',
        backbone:               '/js/lib/backbone',
        text:                   '/js/lib/text',
        bootstrap:              '/js/lib/bootstrap.min',
        require:                '/js/lib/require',
        marionette:             '/js/lib/backbone.marionette.min',
        'cornerstone':            '/js/lib/cornerstone/dist/cornerstone',
        'dicomParser':            '/js/lib/dicomParser/dist/dicomParser',
        'jpx':                      '/js/lib/jpx.min',
        'cornerstoneWADOImageLoader':'/js/lib/cornerstoneWADOImageLoader/dist/cornerstoneWADOImageLoader'

},
shim: {
    'bootstrap': ['jquery'],
    'cornerstone':['jquery','dicomParser'],
    'cornerstoneWADOImageLoader':['jquery','cornerstone','dicomParser','jpx']
}
},

});
require(['jquery',
    'underscore',
    'app',
    'bootstrap'
], function ($, _, app) {
    app.start();
});


///dicomView

define([
    'jquery',
    'underscore',
    'backbone',
    'text!templates/dicomViewTemplate.html',
    'cornerstone',
    'dicomParser',
    'jpx',
    'cornerstoneWADOImageLoader',

], function ($, _, Backbone, dicomViewTemplate) {

return Backbone.View.extend({

    render: function () {
        this.$el.append(dicomViewTemplate);


        var imageId = 'wadouri:dicom/55fc82d462eea6702a4c0a65'
        var element = $('#dicomImage');
        cornerstone.enable(element);
        cornerstone.loadImage(imageId).then(function(image) {
            cornerstone.displayImage(element, image);
        });

        return this;
        }
    });
});

1 个答案:

答案 0 :(得分:1)

这个问题可能与支持AMD的dicomParser有关,但基石却没有(依赖于它)。看看你是否可以使用AMD模块导入dicomParser(可能通过shim config)?如果这不起作用,请尝试从dicomParser中删除AMD位。