我已经搜索,搜索,尝试过但似乎没有任何效果:我有一个带有一些属性的元素指令,例如width =" width"并且我在控制器上的窗口上的resize事件中更改了这个属性,我已将绑定设置为" ="但如果我注意宽度'它工作一次,但事实并非如此,我试过手表真实的,尝试观察attrs,尝试更改绑定,没有任何作用,任何想法?
也许我应该打电话给摘要或申请?
function Ctrl1($scope, $window) {
$scope.width = $window.innerWidth;
$scope.height = $window.innerHeight;
angular.element($window).bind('resize', function () {
$scope.width = $window.innerWidth;
$scope.height = $window.innerHeight;
console.log($scope.width, $scope.height);
});
$scope.name = 'angular';
$scope.counter = 0;
$scope.myClick = function() {
$scope.height++;
$scope.width++;
}
}
angular.module('myApp', []).directive('myElement', function() {
return {
restrict: 'E',
scope: {
'width': '=',
'width': '='
},
template: '<button ng-click="myOtherClick()">From Directive</button>',
link: function(scope, iElement, iAttrs) {
scope.myOtherClick = function() {
scope.width++;
scope.height++;
}
}
}
});
答案 0 :(得分:0)
您可以使用以下两种解决方案:
1。在您的指令中,设置:
scope: {
width: '@',
},
然后再做
attrs.$observe('width', function(passedId) {
<强> 2 强> 在指令中使用属性作为函数:
$scope.$watch(function() {
return element.attr('width');//value to be watched;
}, function watchCallback(newVal, oldVal) {
(..)
}
这两个在角度1.2.6中工作正常。
答案 1 :(得分:0)