私は次のタスクを実行しようとしています。
- リストアイテム
- Twitterハンドルを取得する
- 表示するツイートの数をユーザーに尋ねる
- ツイートを取得する
- ユーザーが指定したツイートのみを表示する
私は超基本的な問題を抱えています。HTMLをハードコーディングしていて、knockoukでツイートを取得できます。ハードコーディングされた要素を削除し、knockoutjsのみを使用したいと思います。サブスクライブを使用してユーザー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(2番目のツイート)
現在、各ツイートを静的にhtmlに接続しています。ユーザーのツイートが3つしかなく、5つのツイートをhtmlにハードコーディングした場合、これは機能しません。ユーザーがノックアウトしてツイートにHTMLを挿入するにはどうすればよいですか?
削除し、KnockoutJSによって挿入されたダイナミックHTMLに置き換えたいSTATICHTMLの例。
<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>