Javascript 角度:通过代码修改范围输入时如何更新值
我对angularJS很陌生 我有一个范围输入,可以通过代码更新它的值。我已经为这个输入创建了一个Javascript 角度:通过代码修改范围输入时如何更新值,javascript,angularjs,Javascript,Angularjs,我对angularJS很陌生 我有一个范围输入,可以通过代码更新它的值。我已经为这个输入创建了一个ng模型,并将它绑定到一个标签上 只要用户修改范围输入,它就可以正常工作,但当代码更新范围输入时,更新的值不会得到反映 我创作了一把小提琴: 我怎样才能让它工作 <div ng-app=''> <input type='range' min='20' max='200' ng-model="amount" id='slider'> <p ng-bind=
ng模型
,并将它绑定到一个
标签上
只要用户修改范围输入,它就可以正常工作,但当代码更新范围输入时,更新的值不会得到反映
我创作了一把小提琴:
我怎样才能让它工作
<div ng-app=''>
<input type='range' min='20' max='200' ng-model="amount" id='slider'>
<p ng-bind="amount"> </p>
<button onclick='foo();'> Run!</button>
</div>
跑
修改值的函数:
<script>
var flag = true;
function foo() {
var sliderObj = document.getElementById('slider');
var value = parseInt(sliderObj.value);
if(value >= 200 || value <= 0) {
flag = !flag;
}
if(flag) {
sliderObj.value = value + 5;
}
else {
sliderObj.value = value - 5;
}
console.log(value);
setTimeout("foo()", 200);
}
</script>`
var标志=真;
函数foo(){
var sliderObj=document.getElementById('slider');
var value=parseInt(sliderObj.value);
如果(值>=200 | |值请尝试以下操作:
在脚本中添加-
var p = document.getElementsByTagName('p')[0];
在内部if-else
循环之后,添加p.innerHTML=sliderObj.value;
Angularjs绑定只能在Angularjs控制器内部访问。普通JavaScript不识别Angularjs绑定。因此,它不会相应地更改p
的值。如果我理解,您可以调用foo
foo();
和默认设置值
value = 155;
在开始调用foo函数之前,我建议您阅读官方文档中的一些文章,并进行演练,这对于理解角度基础知识非常有用
回到您的代码,Angular.js工作流中有两个基本的东西您没有了解。为了控制您的模型,您应该使用。您在滑块中用作模型的数量
变量(通过ng model
)保留在或在您的案例中,我想(因为你的应用程序中没有任何控制器
或/)。因此,如果你想手动更改金额
值,你必须实际更改$rootScope.amount
值。但是如果没有控制器
以及附加到它的控制器,你就无法访问$rootScope
变量
所以,首先你最好定义你的应用程序,然后将控制器连接到它,这样你就可以管理它的$scope
下面是我的,如何做到这一点(与评论)
但是,如果要说的话,建议不要将变量保存在$scope
中,而是保存在控制器本身中