2

我计划在我的 AngularJS 控制器中生成一个 Atom 提要。A 想要生成视图,但不是在服务器端,因为我想用新的 AngularJS 路由替换 URI。

现在我知道如何用 JavaScript 编写 XML,但我不知道如何在没有视图的情况下返回 XML 内容。

我的路线设置很正常,如下所示。它用于templateUrl渲染局部视图。

.when('/posts', {
            templateUrl: 'theme/post_list.html',
            controller: PostsController
        })

是否可以使用 AngularJS 在没有视图的情况下提供 XML 内容?像这样:

.when('/posts.atom', {
            controller: PostsController
        })

在服务器端生成 angular.js 路由的 Atom 提要是可能的,但我不想要它。

4

1 回答 1

0

使用以下过程:

  • 使用标签内的 XML将<object>或附加到 DOM<iframe>

或者:

  • 从服务返回 Atom

  • 存储在一个文档片段中

  • 使用transformToFragmentDOMParser创建视图

  • 使用XMLSerializer将视图转换为字符串

  • 在字符串中插入一个XML 样式表:

      <?xml-stylesheet href="feed.css"?>
    
  • 使用字符串作为srcdoc属性的值:

      <iframe srcdoc="{{atomfeed}}" height="95%" width="100%">
    

例如:

$scope.atomstyle='<?xml-stylesheet href="feed.css"?>'
$scope.atomboilerplate='<feed xmlns="http://www.w3.org/2005/Atom">'
$scope.atomhead='<title></title><link></link>'
$scope.atomcontent='<entry><title></title><link></link></entry>';
$scope.atomtail='</feed>'

$scope.atomfeed=String().concat
 (
 $scope.atomstyle, 
 $scope.atomboilerplate,
 $scope.atomhead,
 $scope.atomcontent,
 $scope.atomtail
 )

参考

于 2014-04-16T19:22:46.900 回答