双向绑定不识别 AngularJS 中的变量变化
Two-way binding is not recognising variable change in AngularJS
我有一个滑块,用于更改控制器中的值,如下所示
指数:
<div>
<rzslider
rz-slider-model="slider.value"
rz-slider-options="slider.options">
</rzslider>
<p>{{slider.value}}</p>
</div>
控制器:
app.controller('gbarchartController', function($scope) {
$scope.slider = {
value: 20,
options: {
floor: 0,
ceil: 30
}
};
当我更改滑块的值时,下面的代码将其显示为 2 路绑定应该在屏幕上显示。
<p>{{slider.value}}</p>
问题是,如果我尝试通过控制器中的函数访问此变量,它使用已设置的初始值 20。如果我将滑块更改为 10,下面的代码仍然使用值 20。有问题的变量是 $scope.slider.value 。该值用于切割数组的长度,而数组又用于使用 highchart.js 显示图形。
$scope.graph = function(metric) {
Highcharts.chart(metric, {
chart: {
type: 'column'
},
title: {
text: 'Number Of Executions'
},
colors: [
'#7CFC00', '#FF0000'
],
xAxis: {
categories: numExe.hash.slice(0, $scope.slider.value),
title: {
text: 'Query Hash Value'
}
},
yAxis: {
title: {
text: '% of Total Executions'
}
},
tooltip: {
shared:true
},
series: [{
name: 'Baseline',
data: numExe.base.slice(0, $scope.slider.value)
},
{
name: 'Comparative',
data: numExe.compare.slice(0, $scope.slider.value)
}]
});
}
长话短说,变量在 html 中更改,但在控制器中不会更改。任何帮助将非常感谢。
我不认为Highcharts会监控其数据的变化,因此它不会检测到系列数据的更改(请参阅此处的文档)。此外,传入图形的序列数据是静态的,因此在滑块更改后不会更新。您需要创建一个局部序列变量来保存序列数据,并在滑块更改时更新序列数据。我不确定 numExe 是什么,所以我不能说数据是如何生成的,但 Series 对象具有 setData() 方法(带有重绘参数)应该可以解决问题。
相关文章:
- 重新加载页面时Javascript变量发生变化
- 如何检测和打印变化变量LESS
- 当变量发生变化时运行PHP
- 使用 jquery 检测变量变化
- 如果两个值都会动态变化,则用变量替换某个字符串的一部分 - Javascript
- 为什么 Angular 没有注意到这个变量的值发生了变化
- 如何防止变量在 JavaScript 中发生变化
- 为什么这个变量在函数之间传递时会发生变化
- 指令侦听控制器变量的变化
- JAVASCRIPT 变量在函数中没有变化
- 双向绑定不识别 AngularJS 中的变量变化
- 角度范围之外的变量的变化
- 设置路由时,角度范围变量会发生变化
- PHP 变量根据设备宽度而变化
- 观察Jquery/Javascript中的变量变化
- Javascript -在变量变化时播放声音
- jQuery中奇怪的变量变化
- Angular JS $作用域、数据绑定和变量变化
- Angular不会识别forEach循环中的作用域变量变化
- 如何使动态视图在作用域变量变化时正确更新