离子选择不会更新依赖于范围变量的函数

R P*_*ers 5 javascript angularjs ionic-framework

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

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

控制器中的相关javascript:

$scope.testValue = 'value1';

$scope.variableFunction1 = function() {
  return $scope.testValue === 'value2';
}
Run Code Online (Sandbox Code Playgroud)

相关的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>
Run Code Online (Sandbox Code Playgroud)

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

这是一个错误还是我误解了离子中的某些东西?

bum*_*mpy 3

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

您有两个选择:

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

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