【问题标题】:Get value input with angularJS使用 angularJS 获取值输入
【发布时间】:2016-01-13 11:33:33
【问题描述】:

我必须使用 AngularJS 但不使用控制器来获取输入文本的值。 我怎样才能得到这个值? 我看到了这篇文章,但使用 .controller link post

【问题讨论】:

标签: javascript angularjs


【解决方案1】:

您可以将此代码与 angular.element 一起使用:

angular.element(document.querySelector('#your_input_tag_id')).val();

或者,使用简单的 jQuery:

$('#your_input_tag_id').val();

【讨论】:

    【解决方案2】:

    将您的输入设为模型,该值将始终作为模型可用

    <input type="text" ng-model="myModelName">
    

    然后您的值将在您的模块范围内作为 myModelName 可用

    console.log('value = ' + $scope.myModelName);
    

    ,如果您试图从模块或应用程序范围之外的某个地方获取值,那么您可能做错了,而不是角度方式,最好使用控制器或链接函数,即使它是主应用程序控制器或链接功能,您可以很好地拒绝任何不使用控制器的要求(这听起来像是一个不好或被误解的要求)。

    【讨论】:

      【解决方案3】:

      您应该在指令中执行 DOM 操作,而不是查询 DOM 中的元素(这不是很尖锐,请参阅如果我有 jQuery 背景,我如何“在 AngularJS 中思考”?)。您可以在链接函数中使用该元素。

      所以在你的 myDirective 中

      return { link: function (scope, element, attr) { element.html('Hello world'); } }

      如果您必须在指令之外执行查询,则可以在现代浏览器中使用 querySelectorAll

      angular.element(document.querySelectorAll("[my-directive]"));
      $('#your_input_tag_id').val();
      

      但是你需要使用 jquery 来支持 IE8 和向后

      angular.element($("[my-directive]"));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-11-18
        • 1970-01-01
        • 2014-01-29
        • 2014-11-15
        • 1970-01-01
        • 2018-03-01
        • 2013-07-28
        相关资源
        最近更新 更多