2017-06-02 48 views
1

有什麼辦法可以將參數從一個頁面發送到其他頁面,而無需將它們綁定到URL中。在大多數情況下,我們會將URL中的值發送到下一頁以檢索這些值。喜歡在AngularJs中:有沒有辦法將參數從一個頁面發送到另一個頁面,而無需在url中發送參數?

<li ng-repeat="cat in x.Child"><a ng-href="#/ProductListingByCategory/{{cat.Id}}">{{cat.Name}}</a></li> 

在Javascript或Jquery中,我們做的是這樣的。

<li><a href='Product/ProductList/" + this.Id + "'>" + this.Name + </a> </li> 

是否有任何替代解決方案,我們不應該在URL中發送參數?在此先感謝:)

+0

您可以在本地存儲中設置您的參數,並將它們放入另一個頁面。 –

+0

我注意到你的一個標籤是asp.net-mvc。爲什麼不把它們放在視圖包裏呢? –

+1

你可以選擇本地存儲或常量 –

回答

0

它可以用幾種方法完成,localStorage是一種常見的方式來做到這一點。

示例:在控制器A,可以將變量的值使用本地存儲

$scope.age = 50; 
localStorage.setItem('age', $scope.age); 

在控制器B或任何外部設定到一個名稱,則可以使用取的getItem它。

var age = localStorage.getItem('age'); 
1

如果您正在使用ui-router,您可以使用狀態的params屬性做到這一點。

$stateProvider.state('state.name', { 
    url: "/state-url", 
    params: { 
     myParam: null 
    } 
}); 

當你轉換到狀態,您可以指定myParam任何你想要的值,然後你就可以通過$stateParams訪問它。在控制器

使用在查看

<a ui-sref="state.name({ myParam: 'Value of the param' })">Link Text</a> 

使用

$state.go('state.name', { 
    myParam: 'Value of the param' 
}); 

要知道,一個頁面加載後,這些參數將是空的,因爲它們存儲只是在內存。

相關問題