angular.jsはサーバとの通信にJSONを使うことが典型的ですが、別にテキストでもXMLでも大丈夫のようです。今回、XMLを取得してng-repeatで表示するサンプルを作ったので簡単に紹介します。
まず、コントローラ内で次のようにします。
$scope.jQuery = jQuery;
$scope.getXmlContent = function() {
$http.get($scope.xmlUrl).success(function(data) {
$scope.xmlDoc = jQuery(jQuery.parseXML(data));
});
};
$scope.getXmlContent();
jQueryはロードされているものとします。getXmlContentが$scopeに入っているのは、ng-clickからも呼べるようにするためです。取得先のURLは同一ホストでないとブラウザにはじかれると思います。
次に、html側で次のようにします。
<div ng-show="xmlDoc">
<ul>
<li ng-repeat="itemEle in xmlDoc.find('item').get()">
<span ng-bind="jQuery(item.Ele).find('content').text()" />
</li>
</ul>
</div>
ng-repeatのところでget()を使ってリストにすることがポイントです。
あまり利用シーンはないかもしれませんが、参考にどうぞ。
コメント