编程语言
首页 > 编程语言> > javascript-使用Angular指令使用$scope属性更新DOM-指令运行后立即运行(无需等待事件)

javascript-使用Angular指令使用$scope属性更新DOM-指令运行后立即运行(无需等待事件)

作者:互联网

如果您看这个小提琴:http://jsfiddle.net/rodhartzell/u4zVd/1/

您可以看到,直到处理了已订阅的事件之一,该指令才说明模型$scope.bar.您是否知道一种使指令在绑定后立即识别模型的方法?

            element.keyup(scope.onEdit)
            .keydown(scope.onEdit)
            .focus(scope.onEdit)
            .live('input paste', scope.onEdit);
        element.on('ngChange', scope.onEdit);

解决方法:

我对整个问题的处理方式会有所不同.与其绑定事件,不如设置手表长度:

Live demo here (click).

var app = angular.module('myApp', []);

app.controller('myCtrl', function($scope) {
  $scope.bar = 'something';
});

app.directive('myMaxlength', function($compile) {
  return {
    restrict: 'A',
    scope: { bar: "=ngModel" },
    link: function(scope, element, attrs) {
      var counterElem = angular.element('<span>Characters remaining: {{charsRemaining}}</span>');
      $compile(counterElem)(scope);
      element.parent().append(counterElem);

      scope.$watch(
        function() {
          return scope.bar.length; 
        },
        function(newLength) {
          scope.charsRemaining = attrs.myMaxlength - newLength;
        }
      );
    }
  };
});

标签:angularjs,angularjs-directive,javascript
来源: https://codeday.me/bug/20191030/1965488.html