未定义的主干视图不是函数冲突

Backbone view undefined is not a function conflict

本文关键字:函数 冲突 视图 未定义      更新时间:2023-09-26

我有以下 2 个观点:

显示视图

define(['backbone', 'hbs!tmpl/show_tmpl', 'item/hide'],
    function (Backbone, Hide) {
        return Backbone.Marionette.ItemView.extend({
            initialize: function () {
                console.log('initialize a UserLogin ItemView');
                console.log(Hide); // this comes in as undefined
            }, ...

隐藏视图

define(['backbone', 'hbs!tmpl/hide_tmpl', 'item/hide', 'item/show'],
    function (Backbone, Hide, Show) {
        return Backbone.Marionette.ItemView.extend({
            initialize: function () {
                console.log('initialize a UserLogin ItemView');
                console.log(Hide);
                console.log(Show);
            }, ...

问题是Show View中的console.log(Hide);undefined

如果我从Hide View中删除'item/hide',那么它工作正常。

这个想法是我需要能够做到:

var hide = new Hide();
hide.methodOnShow();

Show View

var show = new Show();
show.methodOnHide();

Hide View

插件:如果这有帮助,2 个视图每个都打开一个模态,所以从显示模态中,我单击舔并打开隐藏模态,反之亦然。

如果我在打开每个模态之前刷新页面,它们工作正常,但不能从打开的模态内部打开它们。

关于如何解决这个问题的任何想法?

没有

返回的依赖项应该添加到末尾(在其他参数之后)

define(['backbone',  'item/hide','hbs!tmpl/show_tmpl'],
    function (Backbone, Hide) {
        return Backbone.Marionette.ItemView.extend({
            initialize: function () {
                console.log('initialize a UserLogin ItemView');
                console.log(Hide); // this comes in as undefined
            }, ...
initialize: function () {
    require(['application', 'item/hide'], function (App, Hide) {
        ...
    });
}, ...