2015-10-14 46 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