0

我得到的错误来自 onShow 函数的最后一行:

    //modalregion: shows a modal detail view in bootstrap modal
var ModalRegion = Marionette.Region.extend({
    el: "#modal",

    onShow :  function(view) {
        view.on("close", this.hideModal,this);
        this.$el.modal('show'); //<- **throws TypeError: Object [object Object] has no method 'modal'** 
    },

    hideModal: function() {
        this.$el.modal('hide'); // bootstrap modal
    }
});

我看到其他帖子有相同形式的错误 Object [object Object] has no method 'XXXX'

他们的解决方案是“停止加载 jquery 两次”。我正在使用 require.js,所以这不应该发生,但我检查了 Crome Dev 工具上的 Network 选项卡,没有加载两次。

this.$el 在调试器中定义,但不使用 modal 作为函数:

this.$el: jQuery.fn.jQuery.init
0: div#modal
context: #document
length: 1
selector: "#modal"
...snip...
load: function ( url, params, callback ) {
map: function ( callback ) {
mousedown: function ( data, fn ) {
mouseenter: function ( data, fn ) {
mouseleave: function ( data, fn ) {
mousemove: function ( data, fn ) {
mouseout: function ( data, fn ) {
mouseover: function ( data, fn ) {
mouseup: function ( data, fn ) {
next: function ( until, selector ) {

有没有我错过的步骤?

谢谢,

安德鲁

4

1 回答 1

2

该区域是一个 jQuery 选择器对象,如果没有jQueryUI 或 KendoUI 之类的插件或其他提供模态功能的插件$el,jQuery 不会在此对象上提供函数。modal

提供该modal功能的插件未加载到您的页面中。您将需要该插件。

于 2013-02-05T13:46:14.340 回答