2015-10-14 27 views
0

我有一個表單,允許更新元素的所有字段。更新成功後,我想重定向到具有所有元素列表的頁面。我想通過這個頁面的消息「更新成功」。Angularjs參數到html

在控制器中我以這種方式傳遞參數給國家提供:

$state.go('list', { message: "Update success" }, { reload: true }); 

在狀態提供:

function ($stateProvider, $urlRouterProvider) { 
     $stateProvider 
      .state('list', 
       { 
        url: '/List', 
        templateUrl: 'elementsList.html', 
        params: { 
         message: 
          function ($stateParams) { 
           return $stateParams.message; 
          } 
        } 
       }) 

這是一個字符串參數傳遞給一個正確的方法html頁面? html頁面中顯示參數值的語法是什麼?

謝謝。

回答

1

我會做這種方式:

function ($stateProvider, $urlRouterProvider) { 
    $stateProvider 
    .state('list', 
    { 
     url: '/List/:message', 
     templateUrl: 'elementsList.html' 
    } 
}) 

的再訪問它在這樣的控制器。 $stateParams.message 不要忘記在控制器中注入$ stateParams。您可以輕鬆地將該值分配給$ scope變量$scope.message = $stateParams.message並在視圖中使用{{message}}來顯示它。

請注意,這裏還有一個事件:

$scope.$on('$stateChangeSuccess', 
function(event, toState, toParams, fromState, fromParams){ ... }) 

該參數可與toParams.message在這種情況下訪問。

+0

謝謝,這樣我可以在控制器中看到消息並將其分配給$ scope,但{{message}}未填充,我在頁面中看不到它。 – Sean

+0

如果您定義$ scope.myData = {message:$ stateParams.message}並使用{{myData.message}},會發生什麼?請注意,您應該避免使用像[此處](https://github.com/angular/angular.js/wiki/Understanding-Scopes) –

+0

這樣的原語嘗試過,它不起作用。 – Sean