得到了我的指示
<input type="range" min="10" max="100" ng-model="svgConfig.textConfig.fontSize" />
在我的控制器中,我得到了像
这样的对象$scope.svgConfig = {
text:'',
textConfig: {
fontSize: 20
},
rectConfig: []
};
尝试在指令的链接中捕获更改,但没有任何反应。
var setDomBindings = function($scope, $element, $attrs){
$scope.$watch('svgConfig.textConfig.fontSize', function() {
var domText = $element.find('text'),
textExample = domText.last()[0],
dataText = $scope.svgConfig.text;
debugger; //haven't even been reached!
if($.isEmptyObject(textExample) && domText.length === 0 && dataText === 0){
$scope.clearSvgRectConfig();
return;
}
$scope.setSvgRectConfig(textExample, domText.length);
});
};
/*
* Retruns initialized DOM element
*/
return {
restrict: 'E',
templateUrl: './app/shared/imageTextEditor/imageTxtSvgView.html',
controller: 'imageTxtSvgController',
transclude: true,
link: setDomBindings
};
答案 0 :(得分:1)
请记住,此函数不会按标记名称/ CSS选择器查找元素。对于按标签名称进行查找,请尝试使用angular.element(document).find(...)或$ document.find(),或使用标准DOM API,例如: document.querySelectorAll() 您可以访问children(),contents()和data()实现,因此您通常可以找到解决方法。