在javascript中创建消息模型的最佳方法是什么?

时间:2013-08-21 07:45:05

标签: javascript jquery

我对javascript最佳做法有疑问。我正在尝试在javascript中创建消息模型。意味着我的整个应用程序消息(弹出消息,工具提示消息,错误消息,警告消息等)应该在一个地方。所以为此我决定在这样的javascript中创建一个匿名对象:

var Message = {
    ForFirstView: {
        Popover: {
            FirstPopover: {
                Message: function (param) {
                    return 'Message with' + param;
                }
            },
            SecondPopover: {
                Message: function (param) {
                    return 'Message with' + param;
                }
            }
            ..... 
            ........
        },
        Tooltip: {
            FirstName: {
                Message: function (param) {
                    return 'Your first name is this with ' + param;
                }
            },
            LastName: {
                Message: function (param) {
                    return 'Your last name is this with ' + param;
                }
            },
            Email: {
                Message: function (param) {
                    return 'Your email is this with ' + param;
                }
            }
            ......
            .........
        }
    },
    ForSecondView: {
        FileTypeNotSupported: function (file) {
            return 'This ' + file + ' not supported.'
        },
        Camera: {
            Stopped: "Your web cam stopped."
        }
        .....
        ......
    }
    ............
    ..............
};

现在,如果我想在第一个视图第一个视图中显示消息,而不是我能做到:

Message.ForFirstView.Popover.FirstPopover.Message('anyvalue');

通过这个我的所有消息来自一个地方,因此未来的编辑和更新变得容易。

但我想知道你对这个Message模型的建议。或者,如果有任何其他更好的方法来解决这个问题,请告诉我。

这个问题出现在我的脑海中,因为当我为这个消息模型创建文档时(使用yuidoc),我无法弄清楚如何记录这个(因为多级层次结构) 。因此,如果此模型足以继续,请建议我为此消息模型提供更好的文档的方法。

感谢。

1 个答案:

答案 0 :(得分:1)

你所做的是一件好事。拥有这样的组织总是好的。您可以考虑使用较短的名称,因为从长远来看它更容易,更快。当我开始构建一个新的前端时,我将至少有几个这样的文件,但不仅仅是函数,还有可能对项目有用的有用的标量,常量和关联数组。然后我将每个文件附加到Web应用程序的一个全局命名空间。所以我会有,例如,MyApp.Messaging,MyApp.Config和MyApp.DateTime等。

你提到“模型”,所以我会说,有很多前端MVC库,如Backbone,Ember,Knockout等,它们为你提供了构建框架 - 并且通过使用他们的方法你可以利用这些库提供的功能,同时保持代码的有序性。然而,这些图书馆存在(有时是陡峭的)学习曲线,而且建立一个伟大的前端肯定没有必要。

我认为你可能会更多地研究如何编写面向对象的javascript。 jQuery UI Widget Factory是一种简单的方法来创建,例如,您可以使用和重用的消息对象,以用于您的网站可能需要的各种类型的弹出窗口,对话框和警报。或者coffeescript允许您编写类而不是原型,您可能会发现它们更具吸引力。您可以将上面的Message模型与一些对话框/窗口/模态类结合使用,并为Web应用程序提供一个强大的,有组织的消息传递系统。