【问题标题】:How to set dynamic url for angular js如何为angular js设置动态url
【发布时间】:2016-07-08 00:05:07
【问题描述】:

我的地址栏网址是

hostname/admin/Usergroup_controller/view_members/1

我在内部使用 Angular js 调用

hostname/admin/Usergroup_controller/get_view_members/1

最后是 id,现在是 1,但可以更改。

我想在下面的代码中传递那个 url

$http.get(site_url + 'hostname/admin/Usergroup_controller/get_view_members/1').success(function (data) {}

我怎么能???

希望你理解

【问题讨论】:

  • var id = 1; $http.get(site_url + 'hostname/admin/Usergroup_controller/get_view_members/' + id).....
  • 有人可以使用 Angular 并被这样的问题阻止吗?
  • @VincentDecaux 遇到了什么问题?

标签: javascript php angularjs codeigniter


【解决方案1】:

根据您的问题,我了解到您希望在浏览器 url 中包含“id”,例如 hostname/admin/Usergroup_controller/view_members/1,因此希望使用该“id”执行 GET 请求,如 $http.get(site_url + 'hostname/admin/Usergroup_controller/get_view_members/1')

我假设您使用的是$routeProvider(角度路由)。现在这意味着您需要调整 .when(path, route) 方法以在浏览器的 url 中传递动态“id”。因此,.when(path, route) 将类似于 .when('/Usergroup_controller/view_members/:id', templateUrl: 'viewMembers.html');假设viewMembers.html 是您要路由到的页面。

在更改.when(path, route) 之后,您需要从浏览器的url 中提取:id 的值。这将通过在路由页面的控制器中使用$routeParams 来完成,在这种情况下将是viewMembers.html。在viewMembers.html 的控制器中,您需要通过编写以下代码来提取:id 的值:

$scope.idEnteredInBrowserUrl=$routeParams.id;

现在,您需要在服务中传递值 $scope.idEnteredInBrowserUrl,您将从该服务中执行 $http.get() 请求。这可以通过在服务中创建一个函数来完成,比如

var setIdEnteredInBrowserUrl = function (id) {
  $http.get(site_url +  'hostname/admin/Usergroup_controller/get_view_members/'+id).success(function    (data) {}}

请注意 $http.get() 在 setter 函数中被提及,因为您希望仅在调用此方法后才调用 $http.get(),并且您必须将 :id 值附加到 GET 请求 URL。

viewMembers.html 的控制器调用此方法,并将提取的:id$scope.idEnteredInBrowserUrl 传递给服务。

【讨论】:

    猜你喜欢
    • 2020-03-30
    • 2019-07-16
    • 1970-01-01
    • 2017-10-19
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    相关资源
    最近更新 更多