如何知道angularjs中的范围

时间:2015-01-10 08:32:25

标签: javascript angularjs ionic-framework

我创建了如下模板

<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=''"

2 个答案:

答案 0 :(得分:0)

问题是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=''",但不建议这样做。

答案 1 :(得分:0)

谢谢大家的帮助。 但是我找到了解决方案,结果是按钮ng-click在标签内部不起作用,所以我将标签更改为div,开始处理所有事情。