角度指令的父作用域未更新UI
Parent scope of angular directive not updating UI
这是我的小提琴
http://jsfiddle.net/3jos4pLb/
我的问题是,你可以看到我的指令通过设置finalValue与我的父控制器作用域进行通信,但当触发窗口调整大小时,作用域.finalValue会通过查看console.log进行更新,但UI不会反映此更新。我正在努力让这一点不断更新窗口的大小。换句话说,指令在第一次加载时成功地将scope.finalValue传递给父控制器,覆盖设置值5(新值是窗口的高度)。然而,当我调整大小时,尽管我在控制台中看到scope.finalValue正在更改值,但UI并没有更新。
var app=angular.module('App', []);
app.controller("Ctrl1", function($scope){
$scope.finalValue = 5;
});
app.directive('elheightresize', ['$window', function($window) {
return {
restrict: "EA",
scope: false,
link: function(scope, elem, attrs) {
scope.onResize = function() {
scope.finalValue = $window.innerHeight;
console.log(scope.finalValue);
// var header = document.getElementsByTagName('header')[0];
// elem.windowHeight = $window.innerHeight - header.clientHeight;
// $(elem).height(elem.windowHeight);
}
scope.onResize();
angular.element($window).bind('resize', function() {
scope.onResize();
})
}
}
}])
您正在使用jql绑定resize事件。jql是非常低级的,它直接将处理程序函数绑定到元素,绕过了正常的角度脏检查。为了让angular知道非angular事件处理程序,您需要调用scope$apply(),让angular知道它需要运行一个摘要循环。
相关文章:
- 如何在范围值更改时使用 angularJs 更新 UI
- 只有当alert()在带有AJAX的internet explorer中使用时,Javascript才会更新UI
- UI网格AngularJS-如何更新UI网格中的列标题
- jQuery UI 滑块动画未更新 UI vValue
- Safari在表单提交期间未更新UI
- 在Backbone Collections中搜索,使用React更新UI
- 角度指令的父作用域未更新UI
- 正在更新UI路由器状态更改上的父作用域
- 检查有效性以更新 UI
- 当可观察数组是其他模型的属性时,挖空不会更新 UI
- 在挖空中更新视图模型并更新 UI
- 值属性的输入类型=“时间”绑定不会使用角度更新 UI
- 挖空模板绑定未更新 UI
- Knockout observableArray项属性更改没有't更新UI
- 使用setTimeout()angularjs可以缓慢更新UI
- 如何在数据发生更改时更新UI
- Aurelia验证器没有't更新UI
- 推入ko.observableArray未更新UI
- AngularJS/ng-grid - 使用拼接更新数组不会更新 UI
- Angular Modal-更新UI(对象已移动到其他日期)