fvi*_*cot 5 javascript ember.js ember-model
在我的ember模型模型中,我需要从枚举中设置String属性.有没有可能与ember模型?
通过示例我想要一个Book模型:
App.Book({
id: Ember.attr(),
title: Ember.attr( 'String' ),
author: Ember.attr( 'String' ),
status: App.BookStatus
});
Run Code Online (Sandbox Code Playgroud)
并App.Book.Status作为具有3个可能值的枚举"FREE", "BORROW", "LOST"并使用它:
var myBook = App.Book.create({
title:'myBook',
author:'fred',
status: App.BookStatus.FREE
})
Run Code Online (Sandbox Code Playgroud)
我需要等同于Java Enum功能
public enum BookStatus {
FREE, BORROW, LOST
}
class Book {
BookStatus bookStatus;
}
Book bookInstance = new Book();
bookInstance.bookStatus=BookStatus.LOST;
Run Code Online (Sandbox Code Playgroud)
如文档中所述:
在Ember.js中,Enumerable是包含许多子对象的任何对象,它允许您使用Ember.Enumerable API处理这些子对象.
例如:
var players = ["Alex", "Paul", "Tom"];
players.forEach(function(item, index) {
console.log('Player %@: %@'.fmt(index+1, item));
});
Run Code Online (Sandbox Code Playgroud)
输出:
// Player 1: Alex
// Player 2: Paul
// Player 3: Tom
Run Code Online (Sandbox Code Playgroud)
要使您自己的自定义类可枚举,您需要两个项目:
要在ember中创建自己的可枚举类/对象,可以使用Ember.Enumerablemixin并遵循以下两个要求:
你必须拥有一个length房产.只要可枚举对象中的项目数发生更改,此属性就会更改.如果将其与Ember.Object子类一起使用,则应确保length使用内置set()方法更改属性.
如果你必须实施nextObject().
实现这两个方法后,将Ember.Enumerablemixin应用于您的类,您将能够像任何其他集合一样枚举对象的内容.
伪代码:
App.MyEnumObject = Ember.Object.extend(Ember.Enumerable, {
length: 0,
nextObject: function() {
//return the next object of the enumeration
}
//more methods and properties
});
Run Code Online (Sandbox Code Playgroud)
有关ember中可枚举的更多信息,请参见此处.
希望能帮助到你.
由于我们使用的是javascript,您尝试做的事情可以用更简单的方式完成.例如:
App.bookStatus = {
FREE: "FREE",
BORROW: "BORROW",
LOST: "LOST"
}
var myBook = App.Book.create({id: 1, title: 'myBook', author: 'fred', status: App.bookStatus.FREE})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4003 次 |
| 最近记录: |