【问题标题】:ionic select does not update function dependent on scope variable离子选择不更新依赖于范围变量的函数
【发布时间】:2016-02-19 13:46:50
【问题描述】:

我有一个更新范围变量的离子选择框。我还有一个作用域函数,它是一个依赖于该作用域变量的函数(例如,它测试变量是否为特定值)。该函数的结果似乎没有随着离子选择框更新,而它似乎在基本 angularJs 中更新。嵌入实际条件而不是函数似乎适用于离子。

离子示例:http://codepen.io/anon/pen/VeOXzb

控制器中的相关javascript:

$scope.testValue = 'value1';

$scope.variableFunction1 = function() {
  return $scope.testValue === 'value2';
}

相关html:

Does not change: {{variableFunction1()}}<br/>
Does change: {{testValue === 'value2'}}<br/>

<div class="item item-input item-select">
  <div class="input-label">
    testValue
  </div>
  <select ng-model="testValue">
    <option value="value1">Val1</option>
    <option value="value2">Val2</option>
    <option value="value3">Val3</option>
  </select>
</div>

同样的角度示例,它按我的预期工作:http://jsfiddle.net/mm5vg0oa/

这是一个错误还是我误解了 ionic 中的某些内容?

【问题讨论】:

    标签: javascript angularjs ionic-framework


    【解决方案1】:

    我的猜测是ion-content 会创建一个新的子作用域,这意味着当您在 select 中选择一个值时,会在ion-content 作用域(与控制器作用域不同)上设置一个新的 testValue 变量。

    你有两个选择:

    1. ion-content 内的元素上设置ng-controller
    2. 使用对象而不是字符串来保存选定的值(参见此处的示例:http://codepen.io/anon/pen/WrBzBq)。

    这个页面很好地解释了这个问题:https://github.com/angular/angular.js/wiki/Understanding-Scopes

    【讨论】:

    • 好的,我将使用您的第二个选项作为解决方案。但我不确定我是否完全理解你的解释。如果 ion-content 在其自己的范围内更改 testValue,范围变量是否永远不会更改值?
    • 例如在这个小提琴中:codepen.io/anon/pen/bEyMwX 它不会停留在控制器范围内的 'value1' 上吗?
    • 好吧,没关系,你的解释似乎 100% 正确。在我添加它的地方添加 {{testValue}} 当然会在 ion-content 范围内打印变量。在这个codepen.io/anon/pen/QyRrpb 我打印标题中的值,这将打印控制器的值而不是内容。感谢您的帮助!
    猜你喜欢
    • 2015-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-29
    • 2021-02-26
    • 2016-09-05
    • 1970-01-01
    • 2018-02-27
    相关资源
    最近更新 更多