Scala.js可以发出任何类型的JavaScript代码,所以从技术上讲,答案是肯定的.但是,由于Ember要求您使用各种类型的自定义类来定义"组件",因此在Scala.js中编写它可能有点难看.例如,此示例取自首页:
App.GravatarImageComponent = Ember.Component.extend({
size: 200,
email: '',
gravatarUrl: function() {
var email = this.get('email'),
size = this.get('size');
return 'http://www.gravatar.com/avatar/' + hex_md5(email) + '?s=' + size;
}.property('email', 'size')
});
Run Code Online (Sandbox Code Playgroud)
必须用Scala.js编写为:
import scala.scalajs.js
import js.Dynamic.{global => g, literal => lit}
g.App.GravatarImageComponent = g.Ember.Component.extend(lit(
size = 200,
email = "",
gravatarUrl = ({ (ths: js.Dynamic) =>
val email = ths.get("email")
val size = ths.get("size")
s"http://www.gravatar.com/avatar/${g.hex_md5(email)}?s=$size"
}: js.ThisFunction).asInstanceOf[js.Dynamic].property("email", "size")
))
Run Code Online (Sandbox Code Playgroud)
嗯,好吧...... JavaScript-ish.
JavaScript的强大UI库非常依赖JavaScript的动态和怪异方面,它们在Scala.js中不能很好地适应.我打算在本学期编写一个专门为Scala.js设计的类似React.js的UI库来解决这个问题.
| 归档时间: |
|
| 查看次数: |
773 次 |
| 最近记录: |