回答

2

我只是分享了一個哥們這一解決方案。不確定它是否符合您的確切要求,但使用UI-Router 1.0.0您可以直接路由到組件。爲了更進一步,使用嵌套狀態,我們可以在命名視圖上指定特定組件。然後我們用標記ui-sref鏈接到我們的孩子狀態。當這個狀態變得活躍時,其視圖的組件也是如此。

如果要使這些視圖具有動態性,例如基於用戶角色說,那麼您可以使用templateProvider函數。但是,對於templateProvider,您不能使用組件來定義視圖,因此您可能必須僅返回組件的標記。

例如<editAdminProfileForm></editAdminProfileForm>

更多與templateProvider看到我的其他答案在這裏有條件的觀點:Angularjs ui-router : conditional nested name views

而且這裏的一對UI的路由器一些額外的閱讀與組件:
https://ui-router.github.io/guide/ng1/route-to-component
https://ui-router.github.io/docs/latest/interfaces/ng1.ng1statedeclaration.html#component

app.js

... 

.state('app', { 
    abstract: true, 
    templateUrl: 'templates/user-profile.html', 
}) 

.state('app.profile', { 
    url: '/profile', 
    views: { 
    'profile': { 
     component: 'userProfile' 
    } 
    } 

}) 

.state('app.profileEdit', { 
    views: { 
    'editProfile': { 
     component: 'editProfileForm' 
    } 
    } 
}); 

用戶profile.html

<ui-view> 
    <div ui-view="profile"></div> 
    <div ui-view="editProfile"></div> 
</ui-view> 

用戶輪廓component.js
輪廓編輯component.js

yourApp.component('userProfile', { ... }); 

yourApp.component('editProfileForm', { ... }); 

用戶簡檔組件。 html

<button type="button" ui-sref="app.profileEdit()">Edit Profile</button> 
+0

謝謝。這正是我所指的。最後,ui-router引入了這一點。感謝收到我的通知 – user3151330

+1

很高興這可能有所幫助。請注意,本文中,UI-Router 1.0.0仍處於測試階段。如果您使用的是1.0.0版本,則需要將該組件作爲模板。 'template:''' – Desmond

相關問題