簡體   English   中英

角度將數據從控制器傳遞到狀態

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM