2013-02-21 40 views
3

我正在尝试为生成rss提要的应用程序创建一个angularjs前端。所以我想配置一个将呈现rss的路由。从angularjs路由返回rss提要

所以其基本思想是,当用户进入http://myserver/#/myTopic/rss服务器将返回下面的API调用http://myserver/api/1/myTopic/rss

因此,我创建如下我的路线的结果。

app.config(['$routeProvider', function($routeProvider) { 
    $routeProvider. 
    // render rss feed 
  when('/:topic/rss', { 
   controller: 'rssCtrl' 
  }); 
}]); 

而且rssCtrl这样定义

var rssCtrl = function($scope, $location, $routeParams) { 
    // what to put in it?? 
}; 
app.controller('rssCtrl', rssCtrl); 

我概念卡在放什么在我的控制器,因为我不想中的index.html渲染(我的单页面应用程序),但RSS提要。

任何想法?想法?

Regards

回答

0

我不认为这是可能的。 Angular是一个客户端框架,即它通过将JavaScript发送到生成HTML的浏览器来工作。你不能认为RSS提要阅读器会解释JavaScript,事实上大多数情况下不会,因为它被认为是一种安全风险。所以你需要在服务器端生成RSS源。

+1

feed是在服务器端生成的(请参阅http://rss-unify.herokuapp.com/api/1/js/rss),所以我需要的仅仅是从http: //rss-unify.herokuapp.com/#/js/rss到http://rss-unify.herokuapp.com/api/1/js/rss。 – 2013-02-21 17:44:28

0

$ location服务允许您只更改URL;它不允许你重新加载页面。当您需要更改URL并重新加载页面或导航到其他页面时,请使用较低级别的API $ window.location.href。 - $location

+1

嗨,感谢您的回答,它似乎是我正在寻找的东西,但我无法让它工作。当('/:topic/rss',{controller:'rssCtrl'})'''和控制器只执行followng行''函数($ window){$ window.location。 href = $ window.location.href.replace('#','api/1');}我仍然在index.html页面上,看来这个控制器在我调试时不会被执行。奇怪的?! – 2013-02-22 13:56:36

+0

@xavier,我相信when()方法必须具有指定的模板或templateUrl的路由对象/参数。试试看看是否有帮助。 – 2013-02-24 03:56:23