[英]$scope and $watch is not updating/working
我的ng-model是在$ scope绑定的控制器中没有更新的值。 我可以保证,我的代码中没有语法错误。 只有一个控制器与html绑定。 $ watch仅在加载页面时运行一次。 请注意,我的文件中有220个左右的观察者,而控制器文件非常像1500多行代码。 为了交叉检查,我还使用不同的控制器绑定一个div,它正如预期的那样工作$ watch和$ scope。
我已经验证我的变量在整个项目中没有重复的名称。 我认为角度在每页2000观察者之前没有任何性能问题。 但事实并非如此。 有人可以对这种奇怪的行为有所了解。 任何帮助,将不胜感激。
注意:我不是在这里发布代码,因为它在我最初开始处理控制器时工作正常,并且在单独的原型上也可以正常工作。 最近,随着越来越多的代码引入了这种行为。
HTML文件:
<div id="studentSearch" class="form-group__text row studentmargin">
<input id="search" type="text" class="studentSearch" tabindex="2"
ng-keyup="$event.which === 13 && !disableSearch ? clickSearchButton(): ''"
placeholder="Search by Name or Email"
ng-model="searchString">
<label for="search">
<button type="button" class="link" tabindex="3"
ng-click="clickSearchButton()" ng-if="!searchResultFlag"
ng-disabled="disableSearch">
<span class="icon-search"></span>
</button>
</label>
<button type="button" class="link" ng-click="clearStudentsSearch()"
ng-if="searchResultFlag" tabindex="4">
<span class="icon-close"></span>
</button>
控制器:
angular.module('app.pages.course.details').controller("CourseDetailController", ['$scope', function($scope){
$scope.disableSearch = true;
$scope.$watch('searchString', function(oldValue, newValue){
if(newValue.length >= 3) {
$scope.disableSearch = false;
}
});
$scope.clickSearchButton = function() { /* Search logic */ }
$scope.clearStudentsSearch = function() {
$scope.searchString = "";
} }]);
所以逻辑是搜索图标只有在searchString大于或等于3个字母时才会启用。 在清除搜索按钮时,它将从UI中清除,如果我们打印范围,则它具有该值,因为按ENTER键,再次搜索工作。
你能尝试使用模型ng-model =“parent.name”的父级。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.