當我在終端中激活Node.js時,我注意到當我點擊Angular應用程序中的任何路由的鏈接時,沒有對該路由的GET請求。但是,當我重新加載時,GET請求突然出現。我聽說過「每資源2個請求」的行爲,但不太明白。在Angular中推遲GET請求
但是,即使第一次請求,也會顯示任何$ http.get方法。 這使我頭痛,因爲我試圖顯示通過數據庫加載的條目的動態列表。他們只出現在第二個請求。
第一 「點擊」(在服務器上的日誌,從節點)
GET /api/entries 200 4ms - 157b
adding the entries on the server side
的/ API /項get請求從$ http.get發源於代碼
二 「點擊」 - 同樣的路線(通過重新加載頁面來實現)
GET /api/entries 200 3ms - 157b
adding the entries on the server side
GET /list 200 23ms - 713b
GET /css/app.css 304 1ms
GET /css/bootstrap/bootstrap.min.css 304 4ms
GET /js/lib/angular/angular-ui.min.js 304 7ms
GET /js/app.js 304 9ms
GET /js/services.js 304 12ms
GET /js/lib/angular/angular.js 304 7ms
GET /js/controllers.js 304 5ms
GET /js/filters.js 304 6ms
GET /js/directives.js 304 11ms
GET /partials/directives/navitem 200 4ms - 144b
GET /partials/directives/navigation 200 6ms - 88b
GET /partials/list 200 9ms - 77b
GET /favicon.ico 200 19ms - 713b
正如你所看到的,現在有一個/列表GET請求。
我該如何解決這個問題?
這是我的列表控制器:
...前面的控制器......
.controller('ListController', ['$scope', '$http', function($scope, $http) {
console.log('The controller has been executed');
$http.get('api/entries')
.success(function(data) {
$scope.entries = data.entries;
});
}])
該控制器綁定到/列表路線
我怎能讓如此,那從第一個請求中顯示從數據庫拖出的條目?
我在這裏發現了一些有關此問題的信息:Does Angularjs really require two requests per resource?,但是,我找不到解決方案。
這玉,編譯爲HTML的,名單路線
ul
li.well(ng-repeat='entry in entries') {{ entry.text }}
索引頁
extends layout
block body
section#container
panel
logo(redirect='write') Diary
navigation
item(redirect='write') Write
item(redirect='list') List
div(ng-view)
script(src='js/lib/angular/angular.js')
script(src = 'js/lib/angular/angular-ui.min.js')
script(src='js/app.js')
script(src='js/services.js')
script(src='js/controllers.js')
script(src='js/filters.js')
script(src='js/directives.js')
在我的控制器代碼,你可以看到我指定從服務器到本地範圍變量的GET請求的結果,但這種情況發生後的範圍不會刷新。我必須去另一條路線,然後再回來看結果。目前還有很多事情不清楚。 – Rasteril
也許你遇到了一個綁定問題。你可以添加相關的HTML到你的問題嗎? –
我已經添加了相關的HTML,但是它是以Jade格式。希望這不會成爲一個問題。 – Rasteril