【发布时间】:2016-08-07 23:23:16
【问题描述】:
这样得到我的指令
<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
};
【问题讨论】:
-
您的绑定在
svgConfig.textConfig.fontSize,但您的手表在svgConfig.fontSize。这是一个错字还是将您的代码翻译成问题正文的错误? -
@Claies 错字,抱歉
-
好的,既然已经澄清了,你的
$watch有一个奇怪的语法,而且你似乎在使用$element这不是一个角度感知函数。 -
@Claies 我可以通过从范围元素中捕获
change并将值设置为范围,然后再应用,但应用过多会使我的应用程序以光速在控制台中抛出错误
标签: javascript angularjs font-size