使用Angular Directive用$scope属性更新DOM-只要指令运行(无需等待事件)
Update DOM with $scope property using an Angular Directive - as soon as the directive runs (without waiting for an event)
如果你看看这个小提琴: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;
}
);
}
};
});
相关文章:
- 在其他javascript框架模板中运行angular指令
- 过早运行的角度组件/指令的$postLink
- 为什么ng中的自定义指令在循环完成后重复运行
- 在运行时创建指令的实例
- 在ng视图加载或指令加载后运行javascript
- 使用Angular Directive用$scope属性更新DOM-只要指令运行(无需等待事件)
- 如何在声明后运行DOM添加的指令
- 通过摘要运行验证指令
- AngularJS:如何在指令编译和链接后从指令内部运行JavaScript
- AngularJS在$http响应后运行编译指令
- 加载指令后运行函数
- 如何在运行时对元素设置ngFocus指令
- Angular JS-需要与页面上的所有指令进行通信,这些指令来自只运行一次的服务中的代码
- 如果范围值更新,则运行Angular指令
- 在angular中,是否可以在控制器运行之前让指令将变量添加到范围中
- 如何在dom完成Angularjs中的渲染后运行指令
- NG重复后运行指令
- 在ng-src之后运行指令代码
- 如何在模型绑定后重新运行指令的link函数
- Angularjs在$http成功后运行指令