单击外部表单,不会获取数据

时间:2015-05-24 17:46:58

标签: javascript angularjs ionic

单击按钮在窗体外时,我不会获取表单数据

<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);
    })

4 个答案:

答案 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-appng-controller

答案 3 :(得分:0)

1)尝试将<button ng-click="update">移到<ion-nav-buttons>容器之外,看看它是否有效。

2)如果有效,请阅读:Transcluding ng-click in a directive