【发布时间】:2013-02-14 17:21:31
【问题描述】:
大家好,我是Backbone的新手。我正在尝试了解 Backone 的模型。特别是如何定义模型。到目前为止,我还没有看到关于如何为骨干定义模型的清晰或正式的方法。 例如,让我们看看帮助文档中的 set 方法。
设置
model.set(属性,[选项])
在模型上设置属性的散列(一个或多个)。
假设我们有如下代码。我认为set 方法实际上是将一个javascript 对象分配给模型。
window.Employee = Backbone.Model.extend({
validate:function(attrs){
for(var key in attrs){
if(attrs[key] == ''){
return key + "can not be null";
}
if(key == 'age' && isNaN(attrs.age)){
return "age is numeric";
}
}
}
});
....
var attr = {}; // I can't not sure what is {} mean.
$('#emp-form input,#emp-form select').each(function(){
var input = $(this);//using jquery select input and select. and enumerate all of them.
attr[input.attr('name')] = input.val();//I am not sure what does it means
});
if(employee.set(attr)){
Employees.create(employee);
}
....
在这个例子中,我没有看到我们可以在 java 类或 c# 类中看到的经典方式来定义类字段或方法。但只看到一个validate 函数。有没有人可以告诉我更多关于它的信息以帮助我理解?谢谢。
【问题讨论】:
-
模型中的操作是错误的,您应该在模型中设置它们之前验证视图中的值
-
我的朋友,我建议您首先阅读 OOP 在 JavaScript 中的工作原理。它与在 C# 和 Java 中的工作方式非常不同。
-
我的朋友,约翰,谢谢。请为我推荐一些关于它的书。
-
是的,你说得对,在 MVC 中,在视图中验证是对的。但是如果你使用了asp.net mvc,你会发现我们可以通过将属性添加到字段来实现验证功能。