【问题标题】:Calling Routes from a js angular 1.5.8 file从 js angular 1.5.8 文件调用路由
【发布时间】:2016-10-28 08:20:58
【问题描述】:

我的后端是在 Silex 中开发的,其中包含可以使用 localhost:8080/project/api/index.php/user 完全访问的各种路由(路由示例)。

如果我在使用 angular 1.5.8 的 js 文件中编写 http get(我只使用一个名为 mainController 的控制器),当我输入 angularsite/user 时,我该如何做到这一点

(user 是路由,“/user”),它会返回数据,然后在我的 index.html 上显示?

【问题讨论】:

  • 您是在问如何以角度发送获取请求吗?
  • 如何接收 Get,我有 /route1 会返回一些数据。我想在我正在开发 Angular 的 js 文件中检索数据。

标签: javascript angularjs routes


【解决方案1】:

您需要将您的应用路由设置到您的 mainController 控制器。

angular.module('YourProject', [
    'YourModule',
    'ngRoute'
])

.config(['$routeProvider', function ($routeProvider) {

        $routeProvider.when('/user', {
            templateUrl: 'view.html',
            controllerAs: 'mainCtrl',
            controller: 'mainController '
        });

        $routeProvider.otherwise({
            redirectTo: '/user'
        });
}])

现在,当页面加载时,RouteProvider 将找到user(默认路由)路由的默认路径,这将加载您的视图和控制器。 templateUrl 包含到模板的路由。

【讨论】:

    【解决方案2】:

    如果你只想加载部分页面,你可以这样做......

    'use strict';
     var App = angular.module('YourProject', ['ngRoute', 'AppControllers']);
    
    App.config(['$routeProvider', function ($routeProvider) {
    $routeProvider.
      when('/user', {
          templateUrl: 'user.html'
      }).
      otherwise({
          redirectTo: '/path'
      });
    }]);
    

    由于您的问题提到了一个 API,如果您只是尝试加载一些数据,您可以从您的控制器中使用类似的东西调用用户 API(前提是给定的 url 是一个接受 GET 请求并使用 JSON 数据响应的 API)。 .

    var AppControllers = angular.module('AppControllers', []);
    
    AppControllers.controller('MainController', ['$scope','$http', function ($scope,  $http) {
    
        //Declare a function to fetch user data from API
        $scope.user= function () {
            var req = {
                method: 'GET',
                url: baseURL + 'project/api/index.php/user'
            }
            return $http(req).success(function (data,status,header) {
               $scope.user = data;
            }).error(function () {
                console.log(error);
            });
        }
    
       //Call the get user function
        $scope.user();
    
    }]);
    

    最后在您的部分文件 (user.html) 中添加控制器以将其与上面声明的控制器绑定。

    <!doctype html>
    <html ng-app="YourProject">
    <body>
    <head>
      <title>User Page</title>
    </head>
    <div class="user-content" ng-controller="MainController">
    </body>
    </html>
    

    【讨论】:

      猜你喜欢
      • 2015-09-13
      • 2016-07-17
      • 2016-06-03
      • 2020-08-11
      • 1970-01-01
      • 2019-09-20
      • 2017-03-30
      • 2019-06-22
      • 2016-07-07
      相关资源
      最近更新 更多