如果我有以下控制器:
function parent($scope, service) {
$scope.a = 'foo';
$scope.save = function() {
service.save({
a: $scope.a,
b: $scope.b
});
}
}
function child($scope) {
$scope.b = 'bar';
}
parent
读b
出的正确方法是child
什么?如果有必要定义b
中parent
,也不会使它语义上不正确假设b
是描述相关的东西的属性child
,而不是parent
?
更新:
对此进行进一步的思考,如果一个孩子有多个孩子b
,将会parent
在b
检索上产生冲突。我的问题是,什么是访问的正确方法是b
从parent
?
AngularJS中的作用域使用原型继承,当在子作用域中查找属性时,解释器将从子对象开始查找原型链,并继续寻找父对象,直到找到该属性为止,而不是相反。
查看Vojta对此问题的评论https://groups.google.com/d/msg/angular/LDNz_TQQiNE/ygYrSvdI0A0J
简而言之:您不能从父范围访问子范围。
您的解决方案:
$emit
向父级向上发送事件,直到根作用域$broadcast
向下发送事件为止。这可以帮助您保持语义上正确。我尝试注入$scope,然后使用,但这不起作用? 有人能提供建议吗?
问题内容: 我正在尝试查看是否存在通过外部javascript函数访问控制器内部范围的简单方法(与目标控制器完全无关) 我在其他几个问题上看到 会从DOM元素中检索范围,但是我的尝试目前未产生正确的结果。 这是jsfiddle:http : //jsfiddle.net/sXkjc/5/ 我目前正在经历从纯JS到Angular的过渡。我试图实现这一目标的主要原因是要保持原始库代码尽可能完整。无需我
问题内容: 我通过这种方式将值传递给自定义过滤器: 我也想在其中注入几个范围变量,就像我在指令中可以做的那样。不必将这些var作为函数参数显式传递就可以做到这一点吗? 问题答案: 显然可以。 通常,您会将范围变量作为函数参数传递给过滤器: 但是,要传递当前范围,您必须传递: 并将引用当前范围: 简化: 警告: 请注意这一点,并仅使用范围读取过滤器中的值,否则您将很容易在$ digest循环中发现自
问题内容: 如何从ui网格单元模板进行访问?这是我的控制器代码: 在此处查看其运行情况:http : //plnkr.co/edit/WYXeQShHWKDYDs4MIZnP?p=preview 我希望单元格内容显示“ hello world”,但它们仅显示“ hello”。 问题答案: 根据http://ui-grid.info/docs/#/tutorial/305_appScope,网格具有
我正在使用Android Jetpack(2.2.0-alpha01)的导航组件。 我希望使用嵌套在主NavHostFragment中的子NavHostFragment,该子NavHostFragment配备了它自己的子nav图。有关上下文,请查看下面的图像: 子nav主机在mainnavhost堆栈前面的片段中定义如下: 如何访问子navHostFragment作用域ViewModel?谢谢你抽
问题内容: 我的页面有多种形式,一次只想显示一个即可。为此,我将每种形式分成一个部分,并使用Bootstrap的手风琴插件一次只允许一个打开的部分。 我的标记看起来像这样: 一切正常,我可以在表单之间导航。 因为我不希望用户打开当前正在编辑的部分包含验证错误的部分,所以我尝试检查函数是否与其关联的表单有效。 我尝试过,但是我做不到。我无法访问负责页面的控制器中与表单关联的FormControlle