为什么我的数据不会从表单中保存更新的范围数据?

时间:2016-05-20 12:41:15

标签: angularjs angularjs-scope firebase angularfire firebase-realtime-database

我在模态中创建了一个表单,允许某人输入计划详细信息。然后我在ng-model属性中创建了范围表单,如下所示......

<form>
    <div class="form-group">
        <label>{{plans.title}}</label>
        <input type="text" name="title" ng-model="plans.title" class="form-control" placeholder="Enter Title" required />
    </div>
    <div class="form-group">
        <label>{{plans.overview}}</label>
        <textarea name="overview" ng-model="plans.overview" class="form-control" placeholder="Overview/Purpose" required />
    </div>
    <div class="form-group">
        <label>{{plans.notes}}</label>
        <textarea name="notes" ng-model="plans.notes" class="form-control" placeholder="Plan Notes" required />
    </div>
    <div class="form-group">
        <label>{{plans.visualplan}}</label>
        <div class="button" ngf-select ng-model="plans.visualplan" name="visualplan" ngf-pattern="'image/*'" ngf-accept="'image/*'" ngf-max-size="20MB" ngf-min-height="100" >Upload Visual Plan</div>
    </div>
    <div class="form-group">
        <button type="submit" ng-click="submit()" Value="Post">Post</button>
    </div>
</form>

在我的代码中,我试图将表单中的数据拉到我的范围对象中,用于标题,概述,注释和visualplan下的计划。然后我编写了这个来将表单中的数据上传到我的firebase json中。但是在提交详细信息时,上传到json进程可以正常工作,但它正在上传我在dailyplans.js文件中初始设置的title,overview,notes和visualplan的默认值。我要上传的是我通过ng-model而不是初始设置值附加的详细信息。谁能发现我做错了什么?

以下是我的js文件。

$scope.submit = function() {
    $scope.plans = {
        title: 'title',
        overview: 'overview',
        notes: 'notes',
        visualplan: 'visual plan'
    }
    if (authData) {
        ref.child('teaching-plans').child('teaching-plans' + authData.uid).set($scope.plans).then(function(authdata) {
            console.log('successful');
        }).catch(function(error) {
            console.log(error);
        });
    }
}

2 个答案:

答案 0 :(得分:1)

当用户点击提交时,您正在重置计划对象。理想情况下,它应该在web/templates/order/show.html.eex:59方法之外。

这就是你应该这样做的方式

<%= if @order do %> #or whichever value is nil
  your code here
<% end %>

并将html更新为

submit

希望这有帮助。

答案 1 :(得分:0)

请勿覆盖您的plans对象:

$scope.submit = function() {
    $scope.plans.title = 'title';
    $scope.plans.overview = 'overview';
    $scope.plans.notes = 'notes';
    $scope.plans.visualplan = 'visual plan;

    if (authData) {
        ref.child('teaching-plans').child('teaching-plans' + authData.uid).set($scope.plans).then(function(authdata) {
            console.log('successful');
        }).catch(function(error) {
            console.log(error);
        });
    }
}

这样,angular可以正确激发听众。