单击按钮在窗体外时,我不会获取表单数据
码
<ion-view title="Indstillinger">
<ion-nav-buttons side="right">
<button class="button" form="userForm" ng-click="update()">
Gem
</button>
</ion-nav-buttons>
<ion-content padding="true" class="has-header">
<form id="userForm">
<ion-list>
<label class="item item-input" name="navn">
<span class="input-label">Navn</span>
<input type="text" placeholder={{user.name}} ng-model="name">
</label>
</ion-list>
</form>
</ion-content>
我尝试将表单ID添加到表单和按钮,但我仍然无法获取ngclick上的表单数据:/
更新
$scope.update = function() {
console.log(this.name);
})
答案 0 :(得分:2)
ion-content创建子范围。输入元素设置&#34; name&#34;此范围内的属性,而不是离子导航按钮部分中使用的范围。
这是经典的&#34;点符号&#34; Angular中的问题。
如果您使用&#34;外部&#34;控制器:
<div ng-controller="outer as vm">
<ion-view title="Indstillinger">
<ion-nav-buttons side="right">
<button class="button" form="userForm" ng-click="update()">
Gem
</button>
</ion-nav-buttons>
<ion-content padding="true" class="has-header">
<form id="userForm">
<ion-list>
<label class="item item-input" name="navn">
<span class="input-label">Navn</span>
<input type="text" placeholder={{user.name}} ng-model="vm.name">
</label>
</ion-list>
</form>
</ion-content>
</div>
.controller('outer', function($scope) {
$scope.user = {
name: "Joe"
}
$scope.update = function()
{
console.log($scope.vm.name);
}
})
答案 1 :(得分:1)
您将要使用:
console.log($scope.name);
而不是:
console.log(this.name);
答案 2 :(得分:0)
因为你没有发布其余的HTML或其余的控制器代码,这是我可以提供的唯一答案
$scope.update = function() {
console.log($scope.name);
})
我知道你说它不起作用,但该代码实际上是有效的并且确实有效。你拒绝发布的其他内容正在打破
您是否检查过控制台是否有错误?我确定有一些,你确认角度已正确加载,你是否正确设置添加ng-app
和ng-controller
?
答案 3 :(得分:0)
1)尝试将<button ng-click="update">
移到<ion-nav-buttons>
容器之外,看看它是否有效。
2)如果有效,请阅读:Transcluding ng-click in a directive