如何知道 angularjs 中的范围
how to know scope in angularjs
我创建了如下模板
<ion-header-bar class="bar-light bar-subheader bar bar-header item-input-inset">
<label class="item-input-wrapper">
<i class="icon ion-ios7-search placeholder-icon"></i>
<input type="search" ng-model="search" placeholder="select city...">
<button ng-if="search.length" class="customIcon button button-icon ion-close-circled input-button"></button>
</label>
<button class="button button-clear">Cancel</button>
</ion-header-bar>
我的问题是,当我将下面的代码放在标签内的按钮中时,它不会起作用,但如果我将相同的代码放在标签外的按钮中,它会起作用
ng-click="search=''"
问题是 ngIf
指令创建了一个新的子作用域,所以 search=''
变成了局部子作用域 属性 search
与父作用域无关 search
你要的型号。
最简单的解决方法是使用 ngShow
,它只隐藏按钮但处理相同的范围:
<button ng-show="search.length" ng-click="search=''" class="customIcon button button-icon ion-close-circled input-button"></button>
您也可以使用父作用域参考来克服它:ng-if="search.length" ng-click="$parent.search=''"
,但不推荐这样做。
谢谢大家的帮助。
但我找到了解决方案,结果是按钮 ng-click 在标签内不起作用,所以我将标签更改为 div 开始工作。
我创建了如下模板
<ion-header-bar class="bar-light bar-subheader bar bar-header item-input-inset">
<label class="item-input-wrapper">
<i class="icon ion-ios7-search placeholder-icon"></i>
<input type="search" ng-model="search" placeholder="select city...">
<button ng-if="search.length" class="customIcon button button-icon ion-close-circled input-button"></button>
</label>
<button class="button button-clear">Cancel</button>
</ion-header-bar>
我的问题是,当我将下面的代码放在标签内的按钮中时,它不会起作用,但如果我将相同的代码放在标签外的按钮中,它会起作用
ng-click="search=''"
问题是 ngIf
指令创建了一个新的子作用域,所以 search=''
变成了局部子作用域 属性 search
与父作用域无关 search
你要的型号。
最简单的解决方法是使用 ngShow
,它只隐藏按钮但处理相同的范围:
<button ng-show="search.length" ng-click="search=''" class="customIcon button button-icon ion-close-circled input-button"></button>
您也可以使用父作用域参考来克服它:ng-if="search.length" ng-click="$parent.search=''"
,但不推荐这样做。
谢谢大家的帮助。 但我找到了解决方案,结果是按钮 ng-click 在标签内不起作用,所以我将标签更改为 div 开始工作。