2014-02-14 61 views
-1

獲取變量我看到這個文檔:http://docs.angularjs.org/api/ng.directive:ngHref從URL中AngularJS

這清楚地表明,你可以基於在輸入值操縱URL。

但我想做相反的事情。我想擁有http://www.example.com/5並將5提供給我可以在我的控制器中使用的變量。

我該怎麼做?

+0

您可以使用[__ $ routeParams__(http://docs.angularjs.org/api/ngRoute.$routeParams) – Satpal

+0

@Satpal感謝 - 但我htink的文檔是有些不完整。我是否真的將'$ routeParams ==> {chapterId:1,sectionId:2,search:'moby'}'插入到我的控制器中?這似乎不是完整的實施。 – itamar

+0

一個很好的例子http://stackoverflow.com/questions/11534710/angularjs-how-to-use-routeparams-in-generating-the-templateurl – Satpal

回答

2

使用$ routeParams服務獲取該ID。

看到作爲一個例子

angular.module('myApp', []).config(function ($routeProvider, $routeParams) { 
    $routeProvider.when('/:id', {templateUrl: 'example.html', controller: 'exampleCtrl'}); 
}); 

並獲得ID。在你的控制器中的變量用戶$ routeParams。

myApp.controller('exampleCtrl', function($scope, $routeParams) { 
    alert($routeParams.id); 
}); 
+0

對不起,我剛剛看到這一點。我會試試這個,並讓你知道它是否有效。謝謝! – itamar

1

我會從我的控制器調用服務,然後根據該函數的輸出分配範圍。

如果您已有{chapterId:1,sectionId:2,搜索:'moby'}的值,則可以將它們分配到共享範圍,或將它們緩存到服務中,並在調用時檢索它們您的其他控制器