我有父组件和子组件,并且有一些要隐藏的元素,并使用<ng-if>
属性值isTrue
显示。但目前,面临着同样的麻烦。
完全情景:
我有一个名为&#39; isTrue&#39;在父组件控制器中,并使用isTrue: '<'
将其传递给子组件。现在,在子组件中,我需要使用isTrue
属性值隐藏一些东西,我没有这个问题。
现在。再次循环重复相同,但这次我想要使用isTrue
在父组件中硬重置isTrueCheck()
并再次发送回子组件。现在,isTrue
应设置为true
并将其发送到子组件。
综述
同样每当我调用isTrueCheck()时,我只想设置&#39; isTrue&#39;为true并将其发送给子组件。
我尝试将其设置为$onInit()
。
家长控制器:
this.isTrue;
this.isTrueCHeck = function(){
isTrue = true;
};
儿童控制器:
isTrue: '<'
if (isTrue){
isTrue= false;
}
儿童HTML /模板
<div ng-click="isTrueCheck"></div>// Calling to reset `isTrue` property
<div ng-if="$ctrl.isTrue">ele1</div>
<div ng-if="!$ctrl.isTrue">ele2</div>
现在,我想调用父控制器并将硬重置为true并执行相同的过程。
答案 0 :(得分:0)
我不确定我理解你的问题。 如果我说的话,我是对的。
好吧,如果是这样,在孩子中你需要在你的孩子中实现$ onChange方法:
isTrue: '<'
上面的那个是你从父母那里传来的变量。
//
// 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
和
答案 1 :(得分:-1)
如果您的HTML如下所示,您可以执行以下操作:
<div ng-controller="ParentCtrl">
<div ng-controller="ChildCtrl">
</div>
</div>
然后您可以按如下方式访问父范围
function ChildCtrl($scope) {
$scope.isTrue= $scope.$parent.isTrue;
}
如果要从视图中访问父控制器,则必须执行以下操作:
<div ng-if="$parent.isTrue">ele1</div>
<div ng-if="!$parent.isTrue">ele2</div>