2014-07-16 23 views
0

解決
使用window.location的特技= '....' 末端添加了URL;

我是新來的AngularJS和我遇到的問題與保存表單數據後重定向。

當我點擊「保存」按鈕,我將數據發送到服務器,它保存到數據庫中。

$scope.save = function (trips) { 
    if (trips.length != 0) { 
     tripsRepositorySave.save(trips).then(function() { 
      $location.url('/Trips?id=' + trips[0].id); 
     }); 
    } 
}; 

這是tripsRepositorySave

app.factory('tripsRepositorySave', function ($http, $q) { 
return { 
    save: function (trips) { 
     var deferred = $q.defer(); 
     $http.post('/Trips/Save', trips).success(function() { deferred.resolve(); }); 
     return deferred.promise; 
    } 
} 
}) 

,結果是這個網址

http://localhost:3333/Trips?assignmentID=2#/Trips?assignmentID=2 

我不能設法讓它重寫整個路徑,我都試過$ location.path, $ scope.apply()和我可以谷歌的一切,但結果仍然是一樣的。

另一件事是,我想要的頁面得到重新加載,以及和它似乎沒有發生。

謝謝你的任何建議:)

回答

0

除了安迪·加斯克爾回答。

$ location.url(...)只會在'#'後部分管理。所以你的代碼按預期工作。 如果要重新加載整個頁面使用window.location$window

+0

謝謝!那做了工作:) – Mara

1

你想是這樣的:

$location.path("/Trips").search('id', trips[0].id); 

也看到哈希函數,如果你需要附加一個哈希值。

https://docs.angularjs.org/api/ng/service/ $位置

+0

我試圖擺脫散的,只是重寫整個路徑和重裝吧:) window.location的工作:) – Mara

+0

呀'window.location'應該打破你的角度應用程序,如果這就是你想要做的。 –

+0

好吧,我保存/添加所有項目後,我想重新加載頁面,所以它加載所有的數據與ID等,也許我的整個方法是錯誤的..?到目前爲止,我只需要在一個頁面上使用角度,所以我沒有設置任何路由或任何東西 – Mara