在不使用服务或在父控制器中构造观察器的情况下,如何使子状态访问主控制器的$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范围-而是正在获取该范围的另一个实例-
不是我想要的。我觉得我缺少一些简单的东西。在状态对象中有一个共享的数据配置选项,但是我不确定是否应该将其用于这样的事情。
我创建了工作的插件,展示了如何使用$scope
和UI-
Router。
状态定义未更改:
$stateProvider
// States
.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'
})
但是每个状态可以有不同的控制器。为什么?因为每个view
每个 州 获得new
实例
的定义controller
。因此,尽管我们mainController
喜欢下面的代码,但可以肯定的是,如果导航到状态'main.2'
,它将被实例化两次。
controller('mainController', function ($scope) {
$scope.Model = $scope.Model || {Name : "xxx"};
})
但是我们在这里可以看到的是,我们检查是否$scope.Model
已经存在…,如果没有
(父状态) ,则使用 新实例实例 化它 {Name : "xxx"}
。
好吧,我要说的是:只有父国家才能初始化$scope.Model
。所有其他人都将得到满足。怎么样?好吧,这就是答案:
States-%26-Nested-Views#scope-inheritance-by-view-hierarchy-only)
请记住,如果状态的视图是嵌套的,则范围属性仅沿状态链继承。范围属性的继承与状态的嵌套无关,而与视图(模板)的嵌套无关。
完全有可能存在嵌套状态,这些状态的模板会在站点内各个非嵌套位置填充ui视图。在这种情况下,您不能期望在子状态的视图中访问父状态视图的范围变量。
因此,如文档中所述。因为我们的子视图嵌套在父视图中,所以继承了作用域。
在AngularJS中,子作用域通常在原型上从其父作用域继承。
…有一个 ‘。’ 在您的模型中,将确保原型继承在起作用。
// So, use
<input type="text" ng-model="someObj.prop1">
// rather than
<input type="text" ng-model="prop1">.
就是这样。我们从UI-Router
视图和角度范围继承,并且因为我们巧妙地使用了引用类型( Model
),即定义中确实包含'.'
点ng-model
-我们现在可以共享数据
注意:点号为“。” 在ng-model="Model.PropertyName
简单的手段,是有 reference
对象Model {}
的一些属性:PropertyName
在这里检查工作示例
问题内容: 我想在两个兄弟Routes 和之间共享一个共享状态(远程获取客户端列表)。 我想尝试使用“纯” React(无Flux架构)可以走多远。 这个例子 可行,但是我有一个错误:所以,它似乎不喜欢异步道具。 是否可以将异步道具发送到每个路由? 还是可以在父路由(组件)中设置整个状态,然后从每个子路由(和组件)访问此状态? 问题答案: 您可以使用高级组件来提取数据并将数据注入到顶级组件。然后,
我从我的. jar文件运行多个作业。我想在我的工作之间共享状态。但所有输入在每个工作中消耗(来自kafka)并生成重复输出。我看到我的闪烁面板。所有的工作“记录发送”是3。我认为必须将数字拆分到我的工作。 我使用此命令创建作业 我怎样才能修复它?
这个问题在这里已经被问到了,但是两年过去了,我想知道是否有什么改变。 我有一个用例,我希望在两个Flink操作符之间共享状态: > A流是主流,它连续流动 流B只是富集数据的数据集。它很大(几个GBs),因此不能作为广播流。 流B有一个与之相关联的运算符(FlatMap,但可以是任何实际的),它充当状态加载器,并将浓缩数据作为列表状态加载到RocksDB中。 null
我想知道在Flink中是否可以在运营商之间共享状态。 比方说,我在一个操作符上按键进行分区,我需要一个分区的状态(无论出于什么原因)(图1.a),或者我需要下游操作符中操作符的状态(图1.b)。 我知道可以将记录广播到所有分区。因此,如果在记录中包含操作符的内部状态,则可以与下游操作符共享内部状态 然而,这可能是一个昂贵的操作,而不是简单地让op1专门请求op2状态。 可查询状态的最新发展是朝着这
我有一个测试类的testng套件,我正在通过一个testng.xml文件运行它。这个很管用。所有测试都是串行运行的,因此没有并行执行障碍。 当然,通过类成员变量在单个类中的测试方法之间共享状态是很容易的,但是我不知道如何在测试类之间共享状态。
问题内容: 我有2个需要共享状态的React组件,react- router显示了组件A,该组件接受一些输入并将其添加到其状态,在状态成功更新后,我想重定向到组件B,用户在其中添加在我向我的api提交发布请求以保存来自组件A和B的数据之前,使用一些更多的输入并更新与组件A相同的状态以使用来自A和B的输入来构建对象。如何做到这一点,使用react- router的方式,还是我必须在组件之间设置父/子