[英]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.