用javascript创建消息模型的最佳方法是什么
What is the best approach to creating message models in javascript?
我有一个关于javascript最佳实践的问题。我正在尝试用javascript创建消息模型。意味着我的整个应用程序消息(popover消息、工具提示消息、错误消息、警告消息等)应该在一个地方。为此,我决定用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');
这样,我所有的消息都会出现在一个地方,所以以后的编辑和更新变得很容易。
但我想知道你对这个消息模型的建议。或者,如果有其他更好的方法来处理这件事,请告诉我。
这个问题出现在我的脑海中,因为当我为这个消息模型创建文档时(使用yuidoc),我不知道如何对此进行文档记录(因为多级层次结构)。因此,如果这个模型足够好,可以继续使用,请建议我更好地记录这个消息模型的方法。
谢谢。
你所做的是一件好事。有这样的组织总是很好的。你可能会考虑使用较短的名称,因为从长远来看,这更容易、更快。当我开始构建一个新的前端时,我至少会有几个这样的文件,但不仅仅是函数,还有可能对项目有用的标量、常量和关联数组。然后,我将每个文件附加到web应用程序的一个全局命名空间中。例如,我会有MyApp.Messageing、MyApp.Config和MyApp.DateTime等
你提到了"模型",所以我想说,有很多前端MVC库,如Backbone、Ember、Knockout等,它们为你提供了一个可以在其中构建的框架——通过使用它们的方法,你可以利用这些库所提供的功能,同时保持代码的有序性。然而,这些图书馆有一个(有时是陡峭的)学习曲线,它们当然不是构建一个伟大前端的必要条件。
我认为您可能会更多地研究如何编写面向对象的javascript。jQuery UI Widget Factory是创建消息对象的一种简单方法,例如,您可以使用这些消息对象,并将其用于网站可能需要的各种类型的弹出窗口、对话框和警报。或者coffeescript允许您编写类而不是原型,您可能会发现这更具吸引力。你可以将上面的消息模型与一些对话框/窗口/模式类结合使用,这样你的网络应用程序就有了一个强大、有组织的消息系统。
- 有条件更新d3.js力图中节点的最佳方法
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 处理浮点错误的最佳方法是什么
- 从数组中删除元素的最佳方法是:javascript/jquery
- 以编程方式填充组合框道场 (1.8) 的最佳方法是什么?
- 列出没有 mysql 的元素的最佳方法是什么
- 在jquery库中重新定义方法的最佳方法
- Javascript,用vars创建对象的最佳方法
- 使用 jQuery 从 HTML 中获取某些值的最佳方法
- 在变量中保存值的最佳方法是在应用程序关闭后使用,然后使用apachecordova在android中重新启动
- 在d3.json中使用d3.csv组合多个csv文件数据输入的最佳方法是什么
- 用jasmine测试JavaScriptUI的最佳方法
- 使用javascript:在没有阻止html标记(<b>、<p>等)的情况下,阻止脚本的最佳方法
- 如果我返回表,检查 Ajax 调用是否为 200 OK的最佳方法是什么
- JavaScript - 创建可链接函数时的最佳方法是什么
- 在上下文菜单项单击上显示侧边栏/弹出窗口的最佳方法是什么
- 在 JavaScript 中获取范围的随机数的最佳方法
- 在对象类上实现 jquery 作用域的最佳方法
- 将同步函数包装到承诺中的最佳方法是什么?
- 使用 MVC 删除 JavaScript 中硬编码字符串 Asp.Net 最佳方法