【问题标题】:Ionic radio buttons - changes are not recognized by controller scope离子单选按钮 - 控制器范围无法识别更改
【发布时间】:2015-04-21 23:39:28
【问题描述】:

我在使用离子单选按钮时遇到了一些问题。但是,当我更改选定的单选按钮时,离子正确显示复选标记,角度控制器无法识别任何更改。更具体地说,更改不会影响用作单选按钮的 ng-model 的范围变量。

我创建了一个 plunker 示例来演示我的问题:http://embed.plnkr.co/xjakgbnevTHZwF2pCC7e/preview

在示例中,所选选项显示在标题栏中。初始化控制器时,第二项默认为选中项。离子似乎认识到第二个选项被选中。然而,选择更改无法正确识别。

如果有人能帮助我,我将不胜感激,在此先感谢!

最好的问候

【问题讨论】:

  • 尝试安装 chrome 扩展batarang 以检查和调试范围!帮助您了解范围层次结构,以及哪些范围可以访问哪些值。

标签: javascript angularjs angularjs-ng-repeat ionic-framework ionic


【解决方案1】:

如果您想在<ion-content> 标记本身中显示它,则无需使用$parent 提及范围层次结构。在这种情况下,您的代码将正常工作。 Example

我认为这与子范围相关问题有关。为了更新标头,您需要使用$parent.$parent 声明您的 ng-model

APP.html

<ion-view view-title="Radio button demo">
  <ion-header-bar align-title="left" class="bar-positive">
    <h1 class="title">Chosen option: {{item}}</h1>
  </ion-header-bar>  
  <ion-content>
    <ion-list>
      <ion-radio ng-repeat="i in items" ng-value="i.Id" ng-model="$parent.$parent.item" >{{i.Name}}</ion-radio>
    </ion-list>
  </ion-content>
</ion-view>

Working Plunkr


解决此问题的更好方法是使用Dot RulecontrollerAs(消除$scope,在控制器内部使用this)模式。

【讨论】:

  • 您好,非常感谢您的快速回复。是的,它现在可以与 $parent.$parent 一起使用。我想给你一个投票,但我的声誉很低,对不起;-)
  • @user4587483 很高兴为您提供帮助。谢谢。 BDW 我从来没有在 ionic 上工作过,只是第一次尝试了你的问题.. :)
猜你喜欢
  • 2013-06-14
  • 2014-08-06
  • 2017-06-19
  • 1970-01-01
  • 2020-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-11
相关资源
最近更新 更多