2016-12-15 20 views
1

我在Grails中構建了一個自定義的角度應用程序,但儘可能地將其粘貼到默認的Grails Controller View行爲。在Grails 3.2.3的控制器重定向中添加一個#/到起始URL

我想要做的是:使用腳手架控制器。獲得相同的行爲,但是通過在#url的開頭添加#/。再次

http://localhost:8080/#/country/show/5

代替

http://localhost:8080/country/show/5

使角踢:讓您保存記錄後,你會被重定向到。我知道這不是標準的Angular行爲,但我試圖儘可能少地使用角度文件,因爲我對角度知之甚少。

默認腳手架重定向是:

重定向國家

我試着使用:

重定向基地: 「#/」,國家

重定向的國家,[羣:「# /「]

重定向國家,基地:」#/「

絕對重定向:「#/」,國家

但是它們在調用時都會拋出500個錯誤。

這是在我的角度當前應用程序配置:

app.config(function($routeProvider) { 
    $routeProvider.when("/:controller/:action",{ 
     templateUrl:function(params){ 
      return '/'+params.controller+'/'+params.action; 
     } 
    }) 
    .when("/:controller/:action/:param",{ 
     templateUrl:function(params){ 
      return '/'+params.controller+'/'+params.action+'/'+params.param; 
     } 
    }); 
}); 
+0

這是什麼目的? –

+0

我正在使視圖呈現html片斷,以便它們可以在對話框或「單個」視圖中使用。沒有/#控制器顯示沒有任何css或角度的純html的 –

回答

0

你試過嗎?

class SomeController { 
    LinkGenerator linkGenerator 

    def action() { 
     redirect uri: linkGenerator.link(
      controller: 'country', action: 'show', id: 5, base: '/#') 
    } 
} 

UPDATE:給予支持多種格式的要求,教學的角度一起工作「漂亮」的網址,可能是唯一的辦法。 Here is an example posting有以下代碼:

angular.module('scotchy', []) 
    .config(function($routeProvider, $locationProvider) { 

     $routeProvider 
      .when('/', { 
       templateUrl : 'partials/home.html', 
       controller : mainController 
      }) 
      .when('/about', { 
       templateUrl : 'partials/about.html', 
       controller : mainController 
      }) 
      .when('/contact', { 
       templateUrl : 'partials/contact.html', 
       controller : mainController 
      }); 

     // use the HTML5 History API 
     $locationProvider.html5Mode(true); 
    }); 
+0

我可以像這樣硬編碼 重定向(uri:(「#/ country/show /」+ country.id)) 但我是希望通過發送對象「國家」,並讓控制器選擇默認操作,但在網址 –

+0

的開頭加「#/」來提交,我在回答中添加了更新。希望這可以幫助! – helgew

+0

我正在使用的當前應用程序配置工作正常。由於我不需要對每個URL進行硬編碼,所以我希望很快將Spring Security添加到項目中。我使用的角度基本上有一個單一的頁面視圖,並使用頂部的網址。我別無選擇,只能實施一個硬編碼的ID,因爲它工作正常:重定向行動:'顯示',ID:country.id,base:'/#',但創建方法現在給我我曾經有過的同樣的問題。因爲我需要將Country對象發送到編輯視圖,但是在/#開頭 –

0

我最終完全放棄了角度。爲了顯示對話框中的視圖,我只需從服務器返回的響應中提取html片段,並獲得Grails包含的所有默認行爲。

由於grails是一個完整的堆棧框架,它的前端是高度可定製的。除非你想構建一個完整的角度應用程序,否則不值得用角度來替換前端,只是爲了它的單一視圖功能。

服務器響應可能比我需要在對話框中顯示的稍大,但它不會影響性能。控制器不知道他們的意見是在一個對話框中呈現還是作爲完整的網頁呈現,這正是我想要的。

相關問題