<hatena-bookmark params="url: 'http://blog.shibayan.jp/entry/20130711/1373549632'"> </hatena-bookmark>
ko.components.register("hatena-bookmark", { viewModel: function (params) { var self = this; self.title = ko.observable(); self.url = ko.observable(); self.bookmarks = ko.observableArray(); $.ajax({ type: "GET", url: "http://b.hatena.ne.jp/entry/jsonlite/", data: { url: params.url }, dataType: "jsonp" }).done(function (result) { ko.mapping.fromJS(result, {}, self); }); }, template: '<div>\ <h2 data-bind="text: title"></h2>\ <p>\ <span data-bind="text: url"></span>\ <p>\ <ul data-bind="foreach: bookmarks">\ <li data-bind="visible: comment().length > 0"><span data-bind="text: user"></span> - <span data-bind="text: comment"></span></li>\ </ul>\ </div>' }); ko.applyBindings();