我有父组件和子组件,并且有一些元素可以使用<ng-if>通过isTrue属性值隐藏和显示。但目前,也面临着同样的麻烦。
精确场景:
我在父组件控制器中有一个名为“isTrue”的属性,并使用isTrue: '<'将其传递给子控件。现在,在子组件中,我需要使用isTrue属性值隐藏没有问题的东西。
现在。同样,循环会重复相同的情况,但这一次,我希望使用isTrue硬重置父组件中的isTrueCheck(),并再次将其发送回子组件。现在,isTrue应该设置为true,并将其发送到子组件。
Summery:
类似地,每当我调用isTrueCheck()时,我只想将'isTrue‘设置为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>现在,我想调用父控制器和硬重置为真,并做同样的过程。
发布于 2017-01-17 12:09:17
我不知道我是否理解你的问题。如果我说的是:
如果是这样的话,那么您需要在子程序中实现$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
和
发布于 2017-01-17 12:07:10
如果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>https://stackoverflow.com/questions/41695892
复制相似问题