首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AngularJS 1.5中访问子组件中父组件属性的方法是什么?

在AngularJS 1.5中访问子组件中父组件属性的方法是什么?
EN

Stack Overflow用户
提问于 2017-01-17 11:25:15
回答 2查看 1.1K关注 0票数 0

我有父组件和子组件,并且有一些元素可以使用<ng-if>通过isTrue属性值隐藏和显示。但目前,也面临着同样的麻烦。

精确场景:

我在父组件控制器中有一个名为“isTrue”的属性,并使用isTrue: '<'将其传递给子控件。现在,在子组件中,我需要使用isTrue属性值隐藏没有问题的东西。

现在。同样,循环会重复相同的情况,但这一次,我希望使用isTrue硬重置父组件中的isTrueCheck(),并再次将其发送回子组件。现在,isTrue应该设置为true,并将其发送到子组件。

Summery:

类似地,每当我调用isTrueCheck()时,我只想将'isTrue‘设置为true并将其发送到子组件.

我试着把它设置为$onInit()

父控制器:

代码语言:javascript
复制
this.isTrue;
this.isTrueCHeck = function(){
    isTrue = true;
};

子控制器:

代码语言:javascript
复制
isTrue: '<'
if (isTrue){
   isTrue= false;
}

子HTML/模板

代码语言:javascript
复制
<div ng-click="isTrueCheck"></div>// Calling to reset `isTrue` property
<div ng-if="$ctrl.isTrue">ele1</div>
<div ng-if="!$ctrl.isTrue">ele2</div>

现在,我想调用父控制器和硬重置为真,并做同样的过程。

EN

回答 2

Stack Overflow用户

发布于 2017-01-17 12:09:17

我不知道我是否理解你的问题。如果我说的是:

  1. 您有一个父组件和一些子组件。
  2. 您在父级中有一个变量'isTrue‘集,并希望在子元素中传播它。当父类中的“isTrue”更改时,您希望在子节点中触发它。

如果是这样的话,那么您需要在子程序中实现$onChange方法:

代码语言:javascript
复制
isTrue: '<'

上面的变量是从父变量传递的。

代码语言:javascript
复制
//
// React to changes of *one-way bindings* (< and @) of a component
// see http://blog.thoughtram.io/angularjs/2016/03/29/exploring-angular-1.5-lifecycle-hooks.html
// see https://toddmotto.com/angular-1-5-lifecycle-hooks#onchanges
ctrl.$onChanges = function (changesObj) {
    // if isTrue changes, do something
    if (changesObj.isTrue && changesObj.isTrue.currentValue) {
        // do something...
        // ....
    }
}

请参阅:http://blog.thoughtram.io/angularjs/2016/03/29/exploring-angular-1.5-lifecycle-hooks.html

https://toddmotto.com/angular-1-5-lifecycle-hooks#onchanges

票数 0
EN

Stack Overflow用户

发布于 2017-01-17 12:07:10

如果HTML如下所示,您可以这样做:

代码语言:javascript
复制
<div ng-controller="ParentCtrl">
    <div ng-controller="ChildCtrl">
    </div>
</div>

然后,可以访问父作用域,如下所示

代码语言:javascript
复制
function ChildCtrl($scope) {
    $scope.isTrue= $scope.$parent.isTrue;
}

如果要从视图中访问父控制器,则必须执行以下操作:

代码语言:javascript
复制
<div ng-if="$parent.isTrue">ele1</div>
<div ng-if="!$parent.isTrue">ele2</div>
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41695892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档