我有一个离子选择框,用于更新范围变量。我还有一个范围函数,它是一个依赖于范围变量的函数(例如,它测试变量是否为特定值)。该函数的结果似乎没有使用离子选择框更新,而它似乎在基本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/
这是一个错误,还是我误解了离子中的某些东西?
答案 0 :(得分:3)
我的猜测是ion-content
创建了一个新的子范围,这意味着当您在select中选择一个值时,会在ion-content
范围上设置一个新的testValue变量(不同于控制器范围)。
您有两种选择:
ng-controller
。ion-content
此页面很好地解释了问题:https://github.com/angular/angular.js/wiki/Understanding-Scopes