Angularjs 使用“角度”获取元素宽度

Angularjs 使用“角度”获取元素宽度,angularjs,ionic,Angularjs,Ionic,我正在尝试在我的ionic应用程序中获取元素的宽度。但是我得到了一个未定义的,这个代码: html: controllers.js: <ion-slide ng-repeat="s in [0,1,2,3,4,5,6]"> <ul> <li ng-repeat="item in prodata | matchingProBrand:computed.proName:computed.proBra

我正在尝试在我的ionic应用程序中获取元素的宽度。但是我得到了一个
未定义的
,这个代码:

html:

controllers.js:

        <ion-slide ng-repeat="s in [0,1,2,3,4,5,6]">
            <ul>
                <li ng-repeat="item in prodata | matchingProBrand:computed.proName:computed.proBrand | limitTo:s*sliderItemNumber+sliderItemNumber  | limitTo:-sliderItemNumber">
                    <a class="suggestPro" ng-click="launchComputeService(item.id)">
                        <span><img ng-src={{imagesUrls[item.imageName]}} /></span>
                        <p class="flex-caption"> {{item.model}} - {{item.name}}</p>
                    </a>
                </li>
            </ul>   
        </ion-slide>

  • {{item.model}-{{item.name}

你能帮我弄清楚吗


谢谢

如果您想将其用于angular,以下是代码

angular.element(document.getElementById(id)).clientWidth;
angular.element(document.querySelectorAll(".class")[0]).clientWidth;
但我会建议你为那个div输入一个id,然后使用第一个。像这样:

<li id="suggestion" ng-repeat="item in prodata | matchingProBrand:computed.proName:computed.proBrand | limitTo:s*sliderItemNumber+sliderItemNumber  | limitTo:-sliderItemNumber">
                <a class="suggestPro" ng-click="launchComputeService(item.id)">
                    <span><img ng-src={{imagesUrls[item.imageName]}} /></span>
                    <p class="flex-caption"> {{item.model}} - {{item.name}}</p>
                </a>
  • {{item.model}-{{item.name}

  • 和angular元素:
    angular.element(document.getElementById(#suggestion)).clintWidth


    让我看看你是否行得通,兄弟

    如果您想将其用于angular,下面是代码

    angular.element(document.getElementById(id)).clientWidth;
    angular.element(document.querySelectorAll(".class")[0]).clientWidth;
    
    但我会建议你为那个div输入一个id,然后使用第一个。像这样:

    <li id="suggestion" ng-repeat="item in prodata | matchingProBrand:computed.proName:computed.proBrand | limitTo:s*sliderItemNumber+sliderItemNumber  | limitTo:-sliderItemNumber">
                    <a class="suggestPro" ng-click="launchComputeService(item.id)">
                        <span><img ng-src={{imagesUrls[item.imageName]}} /></span>
                        <p class="flex-caption"> {{item.model}} - {{item.name}}</p>
                    </a>
    
  • {{item.model}-{{item.name}

  • 和angular元素:
    angular.element(document.getElementById(#suggestion)).clintWidth


    让我看看你是否行得通,兄弟

    Javascript的
    clientWidth
    属性对具有
    显示类型
    内联
    的HTML元素不起作用。默认情况下,
    anchor
    标记是
    inline

    您可以尝试将
    display:inline block
    作为样式添加到元素中

    <a ng-click="" style="display:inline-block" />
    
    
    
    请注意
    clientWidth
    不包括任何边框或滚动条,其中as
    offsetWidth
    包含边框或滚动条


    在您的示例中,您的脚本位于试图查找的HTML之前。除非在页面加载后运行该特定块,否则这将不起作用。作为一个简单的解决方案,您可以将脚本块移动到HTML下方。

    Javascript的
    clientWidth
    属性不适用于显示类型为
    内联
    的HTML元素。默认情况下,
    anchor
    标记是
    inline

    您可以尝试将
    display:inline block
    作为样式添加到元素中

    <a ng-click="" style="display:inline-block" />
    
    
    
    请注意
    clientWidth
    不包括任何边框或滚动条,其中as
    offsetWidth
    包含边框或滚动条


    在您的示例中,您的脚本位于试图查找的HTML之前。除非在页面加载后运行该特定块,否则这将不起作用。作为一个简单的解决方案,您可以将脚本块移动到HTML下方。

    首先,创建一个属性指令以获取元素的宽度并分配给
    标记。在custom指令中,可以轻松获得元素的宽度

    HTML:


    在控制器中访问元素以获取其宽度不是一种好的做法。所以,获取其宽度的最佳方法是使用自定义指令。

    首先,创建一个属性指令以获取元素的宽度并分配给
    标记。在custom指令中,可以轻松获得元素的宽度

    HTML:


    在控制器中访问元素以获取其宽度不是一种好的做法。所以,获取其宽度的最佳方法是使用自定义指令。

    什么是
    suggestPro
    querySelector
    querySelectorAll
    采用
    .class
    id
    标记名
    或任何css选择器。suggestPro是一个类。我应该加点吗?这个
    $scope.suggestProWidth=angular.element(document.queryselectoral(“.suggestPro”)[0]).clientWidth;log($scope.suggestProWidth,$scope.suggestProWidth)也不起作用…可能重复@isherwood这正是我所做的,但不起作用什么是
    suggestPro
    querySelector
    querySelectorAll
    采用
    .class
    id
    标记名
    或任何css选择器。suggestPro是一个类。我应该加点吗?这个
    $scope.suggestProWidth=angular.element(document.queryselectoral(“.suggestPro”)[0]).clientWidth;log($scope.suggestProWidth,$scope.suggestProWidth)也不起作用…可能重复@isherwood这正是我所做的,但不起作用。谢谢,您的解决方案似乎是“良好实践”,所以我当然喜欢它。但是我如何使用宽度来计算控制器中的其他内容(滑块中显示的项目数(来自ionic的滑块框)?谢谢,您的解决方案似乎是“良好实践”,所以我当然喜欢。但是我如何使用宽度来计算控制器中的其他内容(滑块中显示的项目数)(爱奥尼亚的滑盒)?