You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

AngularJS中如何通过ng-intl-tel-input指令获取国家代码

解决AngularJS中获取ng-intl-tel-input国家代码的问题

嘿,作为AngularJS新手,遇到这种数据绑定的问题太正常了,我来帮你搞定!

你现在用原生JSdocument.getElementById拿手机号的方式其实绕远路了,完全没用到Angular数据绑定的优势。你已经在HTML里通过data-selected-country="selected.country"把选中的国家代码绑定到了selected.country,直接从Angular的作用域里取就好,根本不用手动操作DOM。

具体修改步骤:

  1. 先在控制器里初始化绑定变量
    在你的控制器里,先声明$scope.updating$scope.selected这两个对象,避免出现undefined的情况:

    angular.module('你的应用模块名').controller('对应的控制器名', function($scope) {
      // 初始化双向绑定的变量
      $scope.updating = { phone: '' };
      $scope.selected = { country: '' };
    
      // 重写你的getviewed函数
      $scope.getviewed = function() {
        var form = new FormData();
        // 直接从作用域获取手机号和国家代码
        var phoneNumber = $scope.updating.phone;
        var countryCode = $scope.selected.country;
    
        // 按需把数据加到FormData里
        form.append('phone', phoneNumber);
        form.append('country_code', countryCode);
    
        // 这里写你的后续提交逻辑,比如发送请求等
      };
    });
    
  2. 给提交按钮绑定Angular函数
    记得你的提交按钮要通过ng-click调用这个Angular作用域里的函数,比如:

    <button ng-click="getviewed()" type="button">提交</button>
    

为什么不推荐用原生JS操作DOM?

AngularJS的核心就是数据双向绑定,直接操作DOM会绕过Angular的脏检查机制,不仅不符合框架的设计思路,还容易出现数据不同步的问题。用$scope里的变量直接取值才是Angular开发的正确姿势~

这样修改后,你就能轻松获取到选中的国家代码和手机号啦!

内容的提问来源于stack exchange,提问作者amit

火山引擎 最新活动