代码之家  ›  专栏  ›  技术社区  ›  Adrian Veidt

从角度js中的getElementById获取值

  •  0
  • Adrian Veidt  · 技术社区  · 10 年前

    看法

        <button  class="ion-ios-close-outline" ng-click="change()"></button> 
    
               <label  class="item item-input">  
                    <input  id='test' type="text"  ng-value="77"/> 
                </label>
    

    控制器

     $scope.change = function () {  
                var x=angular.element(document.getElementById("test"));                
                alert(x.value);
    
            };
    

    输出为 undefined . 我在这里做错了什么? 请帮忙。

    3 回复  |  直到 10 年前
        1
  •  1
  •   Diljohn5741    10 年前

    有棱角的元素返回jQlite的包装。它类似于jquery。所以它不支持价值。

    无论使用哪种

    x.val()
    

    x[0].value
    

    无论哪种方式,我都建议不要在控制器中使用这种类型的更改。只能在指令中执行。 您应该使用输入框的模型来访问控制器中的这些值。

        2
  •  1
  •   Luan Soares    10 年前

    在输入中使用ng模型;

    设置ng模型=“测试”

    <input  id='test' type="text" ng-model='test' ng-value="77"/> 
    

    和更改函数集

    var x=$scope.test;
            alert(x);
    

    已编辑

    var a = angular.element(document.getElementById('t'));
    var attr = a[0].attributes;
    var value = attr.getNamedItem("ng-value");
    
    console.log(value.value);
    
        3
  •  0
  •   Mariusz    10 年前

    我认为你的解决方案很糟糕。 Angular API允许使用数据绑定。 因此,您应该在输入组件中使用ng模型,例如:

    <button  class="ion-ios-close-outline" ng-click="change()"></button> 
    <label  class="item item-input">  
        <input  id='test' type="text" ng-model="test"/> 
    

    $scope.test = 77;
    $scope.change = function () {  
        alert($scope.test);
    };