2014-02-20 29 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

但它不能按预期工作,是吗? –