2017-03-31 84 views
0

形成一個頁面,該頁面被稱爲「儀表板」。在儀表板中,有一個下拉菜單,其中包含由PHP腳本列出的項目,並且它們的計數取決於數據庫結果的數量。現在通過角度路由從一個頁面獲取信息到另一個頁面

State 1 - Dashboard with opened drop-down menu

,當用戶單擊從菜單中的項目之一,它應該他重定向到配置頁面,用一些數據(ID,類型)。聽起來很簡單,但所使用的重定向方法是使用角度進行的,所以它使用URL散列,而不刷新網站。配置頁面的URL,然後看起來像:

https://www.example.com/index.php#/configure

...我想有一些數據。我們在那裏看到的網站只是一個空白網站,在文件樹中,它被命名爲「configuration.php」,但由於「configure.module.js.php」中的角碼,您在URL中看不到它」,它只是將用戶重定向,讓他們以正確的網站:

(function() { 
    'use strict'; 

    angular.module('BlurAdmin.pages.configure', []) 
     .config(routeConfig); 

    /** @ngInject */ 
    function routeConfig($stateProvider) { 
    $stateProvider 
     .state('configure', { 
      url: '/configure', 
      title: 'Configuration', 
      templateUrl: 'app/pages/configure/configure.php', 
      controller: 'addCtrl', 
     }); 
    } 

})(); 

所以我認爲,如果我想將數據獲取到我的網站,我需要某種形式的GET請求的。我想通了,如果我使用像這樣的GET請求,將工作:

https://www.example.com/index.php?something=works&omg=itWorks#/configure 

所以我的index.php將與GET數據的工作,並將其寫入到會話,然後可以在配置中使用。 PHP!

嗯,它的工作,有點...但最主要的是,它是所有角度,所以沒有網站刷新!這意味着我的所有文件都不會被刷新,所以當我再次單擊按鈕後,該站點將不會再次獲取GET請求,它會將我重定向到configuration.php,而不處理新數據......它會保留第一個GET參數和SESSION。

所以有我的問題。如何做到這一點?我真的需要點擊一下鼠標,將這些數據發送到configuration.php,而無需刷新網站,但是,工作和更新。

+0

使用一些教程https://www.sitepoint.com/write-modular-code-angular-ui-router-named-views/ – jos

+0

Angular是一個客戶端「框架」,它意味着使用Ajax來請求數據服務器並將其加載到HTML模板中。如果您正在嘗試將數據傳遞給php文件並使用Angular進行渲染,那麼Angular路由不適合您。您應該將HTML模板傳遞給Angular,並向服務器發送Ajax請求以獲取任何必要的數據。或者在不使用Angular路由的情況下重定向到新的PHP頁面。 – eric

+0

一個不會「獲取數據到一個網站」。一個使用'$ http.get'來**從站點**和'$ http.post'中獲取數據*以將數據*發佈到站點**。有關更多信息,請參閱[MDN Web技術參考 - HTTP請求方法](https://developer.mozilla。組織/ EN-US /文檔/網絡/ HTTP /方法)。 – georgeawg

回答

1

在HTML中添加UI的SREF喜歡這個

ui-sref="configure/({id: valueid}) 
文件配置

url:'/configure/:id' 

在控制器中添加$ stateParams這樣

function addCtrl($scope,$http,$stateParams) 

和使用Ajax GET

var params = $.param({'id':$stateParams.id}) 

     $http({ 
        method:'GET', 
        url:'yoururl?id=' + $stateParams.id, 
        data:params, 
        headers : { 'Content-Type': 'application/x-www-form-urlencoded' } 

       }).then(onSuccess); 
相關問題