如何使用$ stateParams将字符串传递到另一个页面?

时间:2016-07-19 16:06:10

标签: javascript angularjs

我正在使用角1.5.x&巴贝尔。我想在第一页中传递一个字符串,然后在第二页中显示它。 我有这两种状态:

第一个州

library(data.table)

melt(setDT(mat), id.vars = 6, measure.vars = 1:5, 
     variable.name = "COLNAME", value.name = "VALUE")

第二州

.state('outside'{
 url:'/outside',
 templateUrl: 'outside.html',
 controller: 'outsideCtrl'
})

我的第二个控制器 看起来像这样。

.state('inside',
 url:'/inside/:building',
 templateUrl: 'inside.html',
 controller: 'insideCtrl'
})

第一个HTML

constructor($stateParams) {
   this.Building : $stateParams.building;
}

第二次

<a ui-sref="inside ({building: 'castle'})"> castle </a>
<a ui-sref="inside ({building: 'blacksmith'})"> castle </a>

我仍然错了,因为建筑物未定义,也可以传递一个字符串? 谢谢

2 个答案:

答案 0 :(得分:1)

在内部控制器中,您需要通过$state获取参数值。您需要将其注入控制器。

$scope.building = $state.params.building;

以HTML格式

<p>Okay, now you are in a {{building}} </p>

答案 1 :(得分:1)

你可以这样做。

在你的州添加param属性。

.state('inside',
 url:'/inside',
 templateUrl: 'inside.html',
 controller: 'insideCtrl',
 params: {
           building: ""
        }
})

在html中,如下所示更改ui-sref

ui-sref="inside({building : yourstringvaluevariable})"

在第二个控制器中接收这样的参数。

var newBuilding = $state.params.building;