Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取AngularJS脚本中的HTML元素数据_Javascript_Html_Angularjs_Element - Fatal编程技术网

Javascript 获取AngularJS脚本中的HTML元素数据

Javascript 获取AngularJS脚本中的HTML元素数据,javascript,html,angularjs,element,Javascript,Html,Angularjs,Element,我是AngularJS新手,正在尝试设计一个包含两个文本字段和两个单选按钮的页面 第一个文本字段是当前地址,然后是单选按钮(一个表示是,第二个表示否),最后一个组件是永久地址文本字段。首先,用户将在当前地址文本字段中输入值,然后,如果用户选择是单选按钮,则应将数据从当前地址复制到永久地址文本字段,如果用户选择否,则不应执行任何操作。下面是我编写的示例代码: *<input type="text" name="cAddress" ng-model="cAddress" required/&g

我是AngularJS新手,正在尝试设计一个包含两个文本字段和两个单选按钮的页面

第一个文本字段是当前地址,然后是单选按钮(一个表示是,第二个表示否),最后一个组件是永久地址文本字段。首先,用户将在当前地址文本字段中输入值,然后,如果用户选择是单选按钮,则应将数据从当前地址复制到永久地址文本字段,如果用户选择否,则不应执行任何操作。下面是我编写的示例代码:

*<input type="text" name="cAddress" ng-model="cAddress" required/>
<input type="radio" name="opt" ng-click="copyAddress(true)" />
<input type="radio" name="opt" ng-click="copyAddress(false)" />
<input type="text" name="pAddress" ng-model="pAddress" required/>*
当我试图在控制台中打印
$scope.cadAddress
$scope.pAddress
值时,它显示undefined。即使是
$scope
也没有cAddress和pAddress

因此,主要问题是我没有在AngularJS控制器中获取元素数据

请查找plunker url: 单击“下一步”导航到第二个选项卡,在那里您将找到“是”和“否”单选按钮以复制数据

我已经缩小了密码,请检查一下。要理解流程,可以阅读自述文件。
尝试使用另一个范围对象

也就是说,为每个输入创建一个范围对象并向其添加属性,如

$scope.myObject = {}; // Empty scope variable
$scope.myObject.cAddress = ""; // initialize your model for the input.
现在您应该使用这个变量作为输入

<input type="text" name="cAddress" ng-model="myObject.cAddress" required/>

试试这个。它可能会帮助您。

Html代码:

<body ng-controller='Maincontroller'>
  <input type="text" name="cAddress" ng-model="cAddress" />
  <input type="radio" name="opt" ng-click="copyAddress(true)" />
  <input type="radio" name="opt" ng-click="copyAddress(false)" />
  <input type="text" name="pAddress" ng-model="pAddress" />
</body>

奇怪。。你能再给我看一些html吗。。控制器是否在相关的
标记中正确设置,并且此表单位于该
标记下。您违反了始终在
ng模型中使用对象的黄金法则。对象具有继承性,原语是否可以创建JSFIDLE?@charlietfl我认为这不是问题所在,但这是一个很好的观点。@Minato它很可能是问题所在。如果涉及子范围,它将解释OP的问题。事实上,问题中给出的代码是正确的。嗨,黑暗军队,我再次尝试,它在我在下面的plunker中创建的示例中工作:但是,它不适用于我的另一个实践示例,请在下面登录plunker url:@RaviNain:如果你能告诉我要查找哪个js和html,它将节省大量时间和行号Regctrl.js:line 113 Regaddress和Contact.html:line 1和34与我的问题相关,我已经缩小了这个plunk上的代码。
<body ng-controller='Maincontroller'>
  <input type="text" name="cAddress" ng-model="cAddress" />
  <input type="radio" name="opt" ng-click="copyAddress(true)" />
  <input type="radio" name="opt" ng-click="copyAddress(false)" />
  <input type="text" name="pAddress" ng-model="pAddress" />
</body>
 var app = angular.module('main', []);
app.controller('Maincontroller', ["$scope",
  function($scope) {

    $scope.copyAddress = function(flag) {
      if (flag) {
        $scope.address1 = $scope.address;
      } else {
        $scope.address1 = "";
      }
    };
  }
]);