javascript - 为什么 $watch() 不起作用

标签 javascript angularjs

我在我的主 JavaScript 文件中创建了一个 Angular 指令。

myApp.directive('mymin', function(){
var func = function(scope, im, attrss, c){
    scope.$watch(function(){ return im.attr('ng-minlength') }, function(n){
        scope.min = n
    })
    }
    return {link:func, restrict: 'A'}
});

我只想查看“ng-minlength”的值状态。 我将此指令放在一个 html 文件中

HTML:

<input type="text" mymin ng-minlength=5>
<input type="text" mymin ng-minlength=13>

我认为当我将焦点从一个输入更改为另一个输入时,“scope.min”的值将会改变,但我错了。 “scope.min”的值始终为 13。

那你能告诉我原因吗? 非常感谢。

最佳答案

如果您希望监视元素属性的更改,那么您应该在属性对象上使用 $observe (链接函数的第三个参数),而不是 $watch

attrss.$observe("ng-minlength", function(n){
    scope.min = n
})

关于javascript - 为什么 $watch() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31448251/

相关文章:

javascript - 在 md-autocomplete 上使用 ng-blur?

javascript - c3图表数据标签重叠问题

javascript - 有没有办法使用pdf.js为pdf渲染编写javascript事件

javascript - 简单的 slider 设置值

javascript - 当两个元素都没有悬停时调用函数?

angularjs - 恢复 AngularJs 中 $scope 变量的更改

css - 使用范围内的变量全局更新 CSS 样式

javascript - 在 StrictMode 中不推荐使用 findDOMNode 如何改用 refs

javascript - 为什么我的 Angular ngModel 示例没有抛出错误?

angularjs - Angular ui-router ng-if当前确切状态