2014-02-20 54 views
1

我有一個AngularJS應用程序,並使用ui路由器進行路由。我的一個頁面有兩個相同的模板和邏輯相同的部分(所以我希望他們可以使用相同的控制器)。它們之間的唯一區別是例如type屬性。這裏是簡化的頁面小提琴:http://jsfiddle.net/e_gluhotorenko/XeX59/7/AngularJS ui路由器視圖與自定義數據

那麼是否有可能提供自定義不同的數據到視圖的範圍?像自定義數據的狀態但訪問量:

views: { 
    'section1' : { 
     templateUrl: 'section.html', 
     controller : 'ctrl', 
     data : { type: 'type1'} 
    }, 
    'section2' : { 
     templateUrl: 'section.html', 
     controller : 'ctrl', 
     data : { type: 'type2'} 
    } 
} 

或用ui-view指令就像ng-inclideonload

<div ui-view="section1" onload="type = 'type1'"></div> 
<div ui-view="section2" onload="type = 'type2'"></div> 

回答

2

剛剛發現ui-view實際上有onload屬性,它是在文檔中不存在,但在API ref。所以我從這個問題的例子起作用! fiddle

1

你嘗試ng-init<div ui-view="section1" ng-init="type = 'type1'"></div>? 這應該工作,我將連接的角文檔爲ng-init,但該網站似乎是降權現在

+0

我覺得'ng-init'應該在父範圍內調用,所以我們只需從父範圍初始化'type'兩次。檢查這個http://jsfiddle.net/GXLZm/1/ –

+0

@ egluhotorenko你的jsfiddle似乎做了我的建議,在這2個div上調用'ng-init'。我只寫了兩個div中的一個。一個jsfiddle總是更好,但是很好! – BramSlob

+0

但它不能按預期工作,是嗎? –