我正在尝试完成以下任务:
- 项目清单
- 获取推特句柄
- 询问用户要显示多少条推文
- 获取推文
- 仅显示用户指定的推文
我有一个超级基本的问题。我有硬编码的html,我可以用knkouk获取推文,我想消除我的硬编码元素,只使用knockoutjs。我可以使用subscribe从用户 Y 获取 x 条推文,并使用observable 数组将推文推送到其中。
代码效果很棒。这是我的做法:
TwitterGet = function() {
var recent_tweets = ko.observableArray();
var twitter_image = ko.observable();
var component = this;
var url = 'https://twitter.com/search.json?callback=?';
this.attributes.twitter_user_handle.subscribe(function(value) {
var url = 'https://twitter.com/search.json?callback=?';
var twitter_parameters = {
include_entities: true,
include_rts: true,
q: 'from:' + value,
count: '3'
}
$.getJSON(url,twitter_parameters,
function(json) {
twitter_image(json.results[0].profile_image_url);
result = json.results;
recent_tweets.push(result);
});
});
};
我的问题非常简单。推文住在这里:
- 最近的推文.slice(-1)[0][0].text(第一条推文)
- 最近的推文.slice(-1)[0][1].text(第二条推文)
现在我将每条推文静态插入到 html 中。如果用户只有 3 条推文并且我已将 5 条推文硬编码到 html 中,则会中断。如何用户淘汰赛以在推文中插入 html?
我想消除的静态 HTML 示例,并替换为由 Knockout JS 插入的动态 HTML。
<div class="tweet" id="first-tweet">
<span class="handle"><a href="#" target="_blank" data-bind-component_<%=component.id-%>="inline_edit: attributes.twitter_user_handle"></a>
</span><span data-bind-component_<%=component.id-%>="inline_edit: recent_tweets.slice(-1)[0][1].text"></span><br>
<a href="#">share</a>
<a href="#" target="_blank">retweet</a>
<a href="#">reply</a></div>
<div class="tweet" id="second-tweet">
<span class="handle"><a href="#" target="_blank" data-bind-component_<%=component.id-%>="inline_edit: attributes.twitter_user_handle"></a>
</span><span data-bind-component_<%=component.id-%>="inline_edit: recent_tweets.slice(-1)[0][2].text"></span><br>