2
我正在使用Ember.js編寫一個小示例應用程序。我的目標是確定Ember的用例。我的應用是一個簡單的Twitter提要查看器。我點擊一個Ember.Button對象,加載我的Twitter提要並將其轉儲到頁面。這一切都很好,但用戶名是硬編碼的。我想深入挖掘,因此我添加了一個Ember.TextField視圖,我想用它來指示Twitter用戶名。收集和使用Ember.TextField的值
我看到按鈕是如何定位顯示推文的項目符號列表的,並且我也看到它是如何知道使用哪個控制器來獲取數據的。我的問題是如何告訴Ember從輸入字段中提取用戶名值,並將其傳遞到調用推文的方法中?我加入現有的JS代碼:
// app.js
var Tweets = Em.Application.create();
Tweets.tweetsArray = Em.ArrayController.create({
content: [],
loadTweets: function() {
var url = 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=commadelimited&callback=?';
$.getJSON(url,function(data){
Tweets.tweetsArray.pushObjects(data);
})
}
});
而這裏的觀點:
<script type="text/x-handlebars">
<div id="frm">
{{view Ember.TextField placeholder="Twitter username"}}
{{#view Ember.Button target="Tweets.tweetsArray" action="loadTweets"}}
Load Tweets
{{/view}}
</div>
<ul id="tweets">
{{#each Tweets.tweetsArray}}
<li>
<h3>{{user.screen_name}}</h3>
<p>{{text}}</p>
</li>
{{/each}}
</ul>
</script>
這比我想象的要容易。所以通過在應用程序中放置用戶名,是否使得它成爲全局變量?或者這個概念在Ember中真的沒有一席之地? – commadelimited 2012-03-14 14:52:55
另一個問題。在JS文件中,你說Tweets.get('用戶名'),但在視圖中你說Tweets.username。是否有關於其中之一的規則還是可以互換的? – commadelimited 2012-03-14 14:56:59
在實際的應用程序中,我可能會創建一個控制器對象來包含此變量,但我希望儘可能簡單。 – 2012-03-14 15:23:36