[英]Angular Passing data to state from controller
我试图通过路由将一些数据从控制器传递到视图文件。 不知道我是否正确传达了信息。
下面是我的编码。
控制者
$scope.roleUsers = function(roleId){
$scope.testvar = "Role Id Is" + roleId;
console.log($scope.testvar);
$state.go('roleUsers');
}
路线
.state('roleUsers', {
url: '/roleUsersList',
templateUrl: 'views/modals/roles/roleUsersList.html',
controller: function($scope) {
$scope.testvar = "Sent by route file";
}
})
查看(roleUsersList.html)
<label>asas{{ testvar }}</label>
如何在html显示中显示“角色ID为X”?
最终,我想做的是从API抓取一些数据(数组)并在新视图中显示。 这只是我最初实现最终目标的基本方法。
需要显示的数据将必须来自控制器(据我所知Angular),因为数据将根据用户的其他输入而有所不同。
我想我可以通过服务/工厂传递数据(我认为这是单例,我认为它不适合动态环境吗?),然后使用第二个控制器,或者可以将$ rootScope与第二个控制器一起使用。 我只是想找出这是否可以在同一控制器中实现。
您可以在路由中发送参数:
$state.go('roleUsers', { roleId: someValue });
或在html中:
<a ui-sref="roleUsers({ roleId: someValue })>..</a>
在您的定义中:
.state('roleUsers', {
url: '/roleUsersList/:roleId',
templateUrl: 'views/modals/roles/roleUsersList.html'
})
和您的控制器:
function($scope, $stateParams) {
$scope.testvar = $stateParams.roleId;
}
如果您不希望参数出现在查询字符串中,则可以使用params
选项:
.state('roleUsers', {
url: '/roleUsersList',
templateUrl: 'views/modals/roles/roleUsersList.html'
params: {
roleId: null
}
})
请参阅此文档
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.