Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 离子选择不更新依赖于范围变量的函数_Javascript_Angularjs_Ionic Framework - Fatal编程技术网

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

Javascript 离子选择不更新依赖于范围变量的函数,javascript,angularjs,ionic-framework,Javascript,Angularjs,Ionic Framework,我有一个更新范围变量的离子选择框。我还有一个作用域函数,它是一个依赖于该作用域变量的函数(例如,它测试变量是否为特定值)。函数的结果似乎并没有用爱奥尼亚选择框更新,而似乎是用基本angularJs更新的。嵌入实际条件而不是函数似乎对ionic有效 例如: 控制器中的相关javascript: $scope.testValue = 'value1'; $scope.variableFunction1 = function() { return $scope.testValue === 'va

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

例如:

控制器中的相关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>
不变:{{variableFunction1()}}
更改:{{testValue=='value2'}}
测试值 瓦尔1 瓦尔2 Val3
同样的角度示例,其工作原理与我预期的相同:


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

我的猜测是,
离子内容
创建了一个新的子范围,这意味着当您在select中选择一个值时,会在
离子内容
范围(与控制器范围不同)上设置一个新的testValue变量

您有两个选择:

  • 离子内容
    内的元素上设置
    ng控制器
  • 使用对象来保存选定的值,而不是字符串(请参见此处的示例:)

  • 这个页面很好地解释了这个问题:

    好的,我将使用您的第二个选项作为解决方案。但我不确定我是否完全理解你的解释。如果ion内容在它自己的作用域中更改testValue,那么作用域变量不会永远更改值吗?例如,在这个提琴中:它不会在控制器作用域中保持“value1”吗?好的,不管怎样,您的解释似乎100%正确。添加我添加的{testValue}}当然会在ion内容范围内打印变量。在本例中,我打印标题中的值,它将打印控制器的值,而不是内容。谢谢你的帮助!