Javascript遍历一组属性
Javascript iterating through a set of properties
嗨,我已经创建了一个包含一组属性的函数对象。这是我的文件:
function LoginModelDTO(data) {
var self = this;
self.UserName = ko.observable(data.UserName).extend({
minLength: {
params: 25,
message: "Username should have at least 25 chars"
},
required: {
message: "Username is required"
},
maxLength: {
params: 50,
message: "Username should not have more then 50 chars"
},
trackChanges: null
});
self.Password = ko.observable(data.Password).extend({
stringLength: {
params: 25,
},
required: {
message: "Password is required"
},
trackChanges: null
});
self.RememberMe = ko.observable(data.RememberMe).extend({
trackChanges: null
});
self.isValid = ko.computed(function () {
var bool = self.FirstName.isValid() &&
self.Username.isValid() &&
self.Password.isValid() &&
self.RememberMe() &&
return bool;
});
}
我想要的是能够找到一种方法来迭代每个属性,并询问它是否有效,而不必每次都写每个属性,因为我也必须写一个类似的结构,如self。
此外,我还需要创建其他与LoginModelDTO类似的对象,这些对象大约有30-35个属性。这将导致大量的代码和更大的javascript文件。
是否有任何方法可以迭代只抛出属性并检查它们是否有效?isValid应该被跳过
eis在评论中给了你一部分,mister在答案中给了你一部分,但这里是全部:
var allValidatablesAreValid = true;
for (var property in self)
{
if (self.hasOwnProperty(property) && self[property]["isValid"]) {
allValidatablesAreValid = allValidatablesAreValid && self[property].isValid();
}
// You can add an early bail out here:
// if (!allValidatablesAreValid) { break; }
}
WELL for…在语句可以帮助您:
var obj = {
pro1:"hello",
pro2:function(){
//code here
},
etc:function(){
}//...
}
for(var property in obj)
{
if(obj.hasOwnProperty(property))
{
console.log(property)//display the name of the property and of course the access
}
}
要访问该属性的值,可以这样做:
for(var property in obj)
{
if(obj.hasOwnProperty(property))
{
console.log(obj[property])//display the value of the property(in case that you need it)
}
}
由于这个问题与淘汰验证库有关,我认为我应该展示如何使用库本身来完成此操作。
self.isValid = ko.computed(function () {
return ko.validatedObservable(self).isValid()
});
查看以上链接获取更多信息
相关文章:
- fluxxor向一个flux实例添加一组以上的操作
- 我们怎样才能将内含子J用于一组特定的元素
- 使用linq.js按当前日期订购一组momentjs日期
- LoDash:从一组对象属性中获取一组值
- 使用 JavaScript 向一组链接中的第一个链接添加一个属性
- 创建具有一个数组属性的Javascript对象
- 禁用一组基于“禁用”的复选框;数据属性“;并禁用属性
- Javascript遍历一组属性
- 如何检查对象是否包含一组属性
- 如何使用html input required属性将一组输入设置为required ?
- 在JQuery中,将一组节点的数据属性放入数组的最佳方法是什么?
- 将一组属性作为字符串插入到标签中
- Sencha Touch -为一组项目设置属性
- 在Javascript中,我如何重命名/重新编号一组属性
- 我如何验证我的模型,当我有一个数组属性
- Typescript装饰器,它覆盖一组属性
- 从一组DOM元素中获取最高的属性值
- 如何在Javascript OOP中为一组已经构建的对象动态添加属性
- 使用 toLowerSay 筛选一组值的导航属性
- 如果一组元素的属性为ID,则对其进行过滤