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);
解决方法:
我对整个问题的处理方式会有所不同.与其绑定事件,不如设置手表长度:
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