2013-02-21 43 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