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