Я медленно шагаю по пути создания директивы в AngularJS. В настоящее время моя директива выглядит следующим образом:Получить ширину HTML-элемента во время выполнения в AngularJS
.directive('myDirective', function() {
return {
restrict:'E',
transclude: true,
scope: {
showLinks: '=?',
query: '='
},
templateUrl: '/directives/my-directive.html',
controller: function ($scope) {
if (angular.isUndefined($scope.showLinks)) {
$scope.showLinks = true;
}
$scope.getLocation = function(l) {
// Get width of "field"
};
}
};
});
Разметка в моем-directive.html выглядит следующим образом:
<div style="width:100%;">
<input id="field" type="text" autofocus autocomplete="off" class="form-control" ng-model="query"
typeahead="option as option.Name for option in getLocation($viewValue)"
typeahead-min-length="3" typeahead-template-url="location.html" />
<script type="text/ng-template" id="location.html">
{{showLinks}} <!-- Never renders -->
<span bind-html-unsafe="match.label | typeaheadHighlight:query"></span>
</script>
</div>
Когда пользователь начинает вводить, функция getLocation обжигают в контроллере. Мне нужно получить ширину текстового поля поля при запуске getLocation. Как получить ширину этого элемента в AngularJS?
Благодарим за отзыв. Как мне получить ширину элемента в моем контроллере? Вот где мне это действительно нужно. Мне нужно получить ширину в моем контроллере. – user70192
Вы можете передать элемент в контроллер, как и область: function someControllerFunc ($ scope, $ element) { } – Mazzu
Обратитесь к коду под заголовком «Обновленный код» – Mazzu