如果快速切换,ng类在绑定变量上不能很好地工作,这可能吗
ng-class not working well on the binding variable if toggled quickly, Is that possible?
我面临以下问题:
<input
type = "text"
class = "class1 class2"
placeholder = "Type here..."
autocomplete = "off"
ng-model = "searchKeyword"
name = "searchId"
ng-class = "{'my-class1': myObject.myAttribute,'my-class2': myObject.myFunction()}" //<-- HERE IS THE PROBLEM
ng-disabled = "myObject.myFunction()"
ng-change = "searchConditionChanged()" numbers-only />
大多数情况下,myObject.myFunction()
会返回false,但也有很短的一段时间会返回true。
在我的网页上,我可以看到类"my-class2"
被正确地添加到<input>
中,但在那之后,当myObject.myFunction()
再次返回false时,该类应该被删除。
但问题是,为什么添加了"my-class2"类,却没有删除。当我在console.log()
中看到函数返回false时,该类仍在DOM树中。
即使我使用$scope.$apply()
或$scope.$digest()
强制更新,它也不会改变。
类"my-class1"绑定到myObject.myAttribute
。它也有同样的问题。
另一件让我很困惑的事情是,当myObject.myFunction()
返回true的时间稍长(比如500ms)时,ng类总是正确地设置类。
感谢您的帮助!
我想问题在于如何编写代码,粘贴控制器或方法的最佳方式;我认为这样做可能会造成这个问题:
- 在你的代码中,你只在开始时间表演我的课,然后永远不会行动
- 你的代码可能太复杂,周期太长
- 您更改了值,但不绑定到视图
我的例子很好
var app = angular.module('myApp', []).controller('haha', function ($scope, $timeout) {
$scope.user = {
name: 'admin'
};
$timeout(function loop() {
if ($scope.user.name) {
$scope.user.name = '';
console.log($scope.user.name);
} else {
$scope.user.name = 'admin';
console.log($scope.user.name);
}
$timeout(loop, 5)
}, 5)
})
.r {
color: red;
font-size: 30px;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="haha">
<div ng-class="{'r':user.name}">{{user.name}}</div>
</div>
相关文章:
- "此网站似乎使用滚动链接定位效果.这可能不能很好地与异步平移一起工作;
- Javascript表排序工作得很好,但对所有索引进行迭代会得到不同的结果
- 为什么mongoose.connect()在mongoose对象上没有作为方法出现时工作得很好
- AngularStrap Select和ng选项don'使用动态数组不能很好地工作
- 如果快速切换,ng类在绑定变量上不能很好地工作,这可能吗
- 为什么这个html5音频不能在chrome上工作,但在safari上工作得很好
- 我的jQuery.hooper's工作得很好,但我可以;t get.点击开始工作
- 即首先破坏我的 JS 脚本,然后我按 F12,它工作得很好
- 内部链接返回空错误,我在 Javascript 中找不到错误.外部链接工作得很好
- JavaScript不能在一个网站上工作,但在另一个网站上很好
- jQuery函数在JavaScript中不起作用,但在JavaScript之外工作得很好
- JavaScript 在 DIV 的加载内容中不能很好地工作
- jQuery Datepicker在移动设备上不能很好地工作
- 我很奇怪“异步”模块不能很好地工作
- jQuery LightSlider不能工作,但在JSFiddle中工作得很好
- Asp.net.服务器端验证和客户端验证很好地协同工作的最佳方式是什么?
- JavaScript代码很好,但网页预览只显示我的html工作
- 例如,jQuery表整理插件工作很好,但不是我的表
- 当我使用AngularJS 1.3.14时不读取JSON文件,但与1.2.10版本一起工作很好
- Ajax调用不能在android上工作,但在ios Cordova上工作很好