在不使用服务或在父控制器中构造监视器的情况下,如何让子状态访问主控制器的$scope
。
.state("main", {
controller:'mainController',
url:"/main",
templateUrl: "main_init.html"
})
.state("main.1", {
controller:'mainController',
parent: 'main',
url:"/1",
templateUrl: 'form_1.html'
})
.state("main.2", {
controller:'mainController',
parent: 'main',
url: "/2",
templateUrl: 'form_2.html'
})
我无法在子状态下访问mainController作用域--或者更确切地说,我正在获得该作用域的另一个实例--这不是我想要的。我觉得我错过了一些简单的东西。state对象中有一个共享数据配置选项,但我不确定是否应该将此选项用于以下内容。
发布于 2014-12-30 05:59:43
这个想法是在parent->子继承中使用作用域:
.state("main", {
controller:'mainController',
abstract: true,
url:"/main",
templateUrl: "main_init.html"
})
.state("main.1", {
controller:'mainController1',
parent: 'main',
url:"/1",
templateUrl: 'form_1.html'
})
.state("main.2", {
controller:'mainController2',
parent: 'main',
url: "/2",
templateUrl: 'form_2.html'
})
使用起来很简单,你有3个控制器,一个是共享的(mainController),每个视图都有它自己的。
发布于 2015-09-30 03:23:27
如果你使用的是嵌套视图,那就不要写任何其他的控制器。通过这种方式,它们将共享相同的控制器数据。
.state("main", {
url: "/main",
templateUrl: "templates/Ders",
controller: "DersController as DersC"
}).state("main.child1", {
url: "/child1",
templateUrl: "templates/Ders/child1"
}).state("main.child2", {
url: "/child2",
templateUrl: "templates/Ders/child2"
})
发布于 2015-04-20 18:12:59
将共享变量分组到一个可以在每个控制器中访问的服务中,这不是最简单的解决方案吗?
https://stackoverflow.com/questions/27696612
复制相似问题