Javascript AngularJS无法在文本框中键入

Javascript AngularJS无法在文本框中键入,javascript,html,css,angularjs,textbox,Javascript,Html,Css,Angularjs,Textbox,目前,我尝试用AngularJS实现一个应用程序。首先,我的问题是:我无法在文本框中键入文本 我有一个zoomService,它增加和减少缩放属性。用户可以使用滑块、按钮和文本框进行缩放,但不幸的是,带有文本框的部分无法工作 这是我的密码: “严格使用”; app.service(“zoomService”、[“$rootScope”、函数($rootScope){ 风险值数据={ 缩放:100, 上限:200,//TODO:Aus Konfigurationsdatei lesen lower

目前,我尝试用AngularJS实现一个应用程序。首先,我的问题是:我无法在文本框中键入文本

我有一个
zoomService
,它增加和减少缩放属性。用户可以使用滑块、按钮和文本框进行缩放,但不幸的是,带有文本框的部分无法工作

这是我的密码:

“严格使用”;
app.service(“zoomService”、[“$rootScope”、函数($rootScope){
风险值数据={
缩放:100,
上限:200,//TODO:Aus Konfigurationsdatei lesen
lowerBound:20//TODO:Aus Konfigurationsdatei lesen
};
返回{
数据:数据,
增量:函数(){
如果($rootScope.$root.$$phase!=“$apply”&&$rootScope.$root.$$phase!=“$digest”){
$rootScope.$apply(函数(){
如果(data.zoom+1=lowerBound)
data.zoom--;
}
},
重置:函数(){
如果($rootScope.$root.$$phase!=“$apply”&&$rootScope.$root.$$phase!=“$digest”){
$rootScope.$apply(函数(){
data.zoom=100;
});
}否则{
data.zoom=100;
}
}
}
}]);
app.controller(“StartController”、[“$scope”、“zoomService”、函数($scope、zoomService){
$scope.zoom=zoomService;
}]);

我很高兴我能解决这个问题的每一个小提示。提前感谢!

当您有

ng-model-options={updateOn: 'blur'}
设置后,该值将仅在用户离开输入字段后更新。如果删除此代码,更新将立即进行。以下是当您

ng-model-options={updateOn: 'blur'}
设置后,该值将仅在用户离开输入字段后更新。如果删除此代码,更新将立即进行。以下是当您

ng-model-options={updateOn: 'blur'}
设置后,该值将仅在用户离开输入字段后更新。如果删除此代码,更新将立即进行。以下是当您

ng-model-options={updateOn: 'blur'}

设置后,值将仅在用户离开输入字段后更新。如果删除此代码,则更新是即时的。下面是复制的示例,其中可能有一个父元素(
md select
,在我的情况下)正在吞噬您的按键关闭事件。若要解决此问题,请尝试添加
onkeydown=“event.stopPropagation()”
到输入标记。这将阻止事件到达父元素,因此它无法再调用
preventDefault()

例如:

<input type="text" ng-model="zoom.data.zoom" ... onkeydown="event.stopPropagation()" />

如果这不起作用,请尝试查找可能正在调用
preventDefault()
并吃掉keydown事件的任何其他代码


也可能是您有一些逻辑在您键入时将模型值还原回其原始值。请检查是否有任何可能执行此操作的
ng change
$watch
事件。尽管如果使用
{updateOn:'blur'}
可能没有问题,但可能存在父元素(
md select
,在我的例子中)它正在吞噬您的按键关闭事件。若要修复此问题,请尝试将
onkeydown=“event.stopPropagation()”
添加到输入标记。这将阻止事件到达父元素,因此它无法再调用
preventDefault()

例如:

<input type="text" ng-model="zoom.data.zoom" ... onkeydown="event.stopPropagation()" />

如果这不起作用,请尝试查找可能正在调用
preventDefault()
并吃掉keydown事件的任何其他代码


也可能是您有一些逻辑在您键入时将模型值还原回其原始值。请检查是否有任何可能执行此操作的
ng change
$watch
事件。尽管如果使用
{updateOn:'blur'}
可能没有问题,但可能存在父元素(
md select
,在我的例子中)它正在吞噬您的按键关闭事件。若要修复此问题,请尝试将
onkeydown=“event.stopPropagation()”
添加到输入标记。这将阻止事件到达父元素,因此它无法再调用
preventDefault()

例如:

<input type="text" ng-model="zoom.data.zoom" ... onkeydown="event.stopPropagation()" />

如果这不起作用,请尝试查找可能正在调用
preventDefault()
并吃掉keydown事件的任何其他代码


也可能是您有一些逻辑在您键入时将模型值还原回其原始值。请检查是否有任何可能执行此操作的
ng change
$watch
事件。尽管如果使用
{updateOn:'blur'}
可能没有问题,但可能存在父元素(
md select
,在我的例子中)它正在吞噬您的按键关闭事件。若要修复此问题,请尝试将
onkeydown=“event.stopPropagation()”
添加到输入标记。这将阻止事件到达父元素,因此它无法再调用
preventDefault()

例如:

<input type="text" ng-model="zoom.data.zoom" ... onkeydown="event.stopPropagation()" />

如果这不起作用,请尝试查找可能正在调用
preventDefault()
并吃掉keydown事件的任何其他代码


也可能是您有一些逻辑在您键入时将模型值还原回其原始值。请检查是否有任何
ng change
$watch
事件可能正在执行此操作。尽管如果您使用
{updateOn:'blur'},这可能不是问题

你能为这个准备好JSFIDLE吗?你有一个错误-在
减量
数据中使用
lowerBound
。lowerBound
,而且在你的情况下似乎更好
工厂
服务
现在我已经创建了一个plunkr,它在那里工作,但在我的系统上没有。我真的很困惑!我的朋友hole应用程序比这个片段大得多可能还有其他副作用?怎么可能