gpt4 book ai didi

javascript - 在 EmberJS 中将摄氏度转换为华氏度

转载 作者:行者123 更新时间:2023-12-02 17:20:45 25 4
gpt4 key购买 nike

我是 EmberJS 的初学者,我想从一个简单的例子开始。但这对我来说似乎并不容易。我尝试改编入门工具包的代码并将其与 EmberJS 主页上的代码混合,但这对我来说根本没有意义。

这是我的 app.js

App = Ember.Application.create();
var c = 100;
var f = c * 9 / 5 + 32;
App.IndexRoute = Ember.Route.extend({
model: function() {
return f;
}
});

这是我可怜的index.html

<!DOCTYPE html>
<html>
<head>
<title>Ember Starter Kit</title>
<script src="js/libs/jquery-1.10.2.js"></script>
<script src="js/libs/handlebars-1.1.2.js"></script>
<script src="js/libs/ember-1.5.1.js"></script>
<script src="js/app.js"></script>
</head>
<body>
<script type="text/x-handlebars">
<div>
<label>Celsius:</label>
{{input type="text" value=c placeholder="Convert Celsius to Fahrenheit"}}
</div>
<hr />
<div class="text"><span class="celsius">{{ c }}</span> Celsius = <span class="fahrenheit"></span> Fahrenheit!</div>
</div>
{{outlet}}
</script>

<script type="text/x-handlebars" id="index">
<div>{{model}}</div>
</script>

</body>
</html>

我尝试过 {{ c * 9/5 + 32 }} 但这不起作用(与 AngularJS 相反)。所以,我的第一个方法肯定是错误的。如何让我的应用程序运行?

最佳答案

Computed Properties

将您的 Model 定义为 Ember 对象或 DS.Model 并在其中使用派生属性。

App.Temperature = Em.Object.extend({
celsius: null,

faren: function() {
return this.get('celsius')?this.get('celsius') * 9 / 5 + 32: 0;
}.property('celsius')
});

App.IndexRoute = Ember.Route.extend({
model: function() {
return App.Temperature.create({celsius: 50});
}
});

现在 hadlebars 模板将使用这个温度对象作为模型,您可以在模板中使用 {{faren}} ,只要 `celsius 发生变化,它的值就会更新。您可以从输入字段绑定(bind)到它。

<小时/>

Handlebars helpers

Ember.Handlebars.helper('fh', function(value, options) {
return (parseInt(value, 10) * 9 / 5 + 32);
});

并在模板中使用它

{{fh c}} deg F
<小时/>

I've tried {{ c * 9 / 5 + 32 }} but this won't work

这个想法是尽可能将逻辑和算术排除在模板之外。

关于javascript - 在 EmberJS 中将摄氏度转换为华氏度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23984877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com