【问题标题】:how to know scope in angularjs如何知道angularjs中的范围
【发布时间】:2015-03-08 14:05:32
【问题描述】:

我已经创建了如下模板

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

【问题讨论】:

标签: javascript angularjs ionic-framework


【解决方案1】:

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

【讨论】:

  • 那你应该建一个demo,因为我描述的就是这个。
  • 嗨,它在 plnkr 中工作,并且表现不同。可以发文件给你看看吗
【解决方案2】:

感谢大家的帮助。 但我找到了解决方案,结果发现按钮 ng-click 在标签内不起作用,所以我将标签更改为 div 开始工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-14
    • 2023-03-20
    • 1970-01-01
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多