Html 保持视图状态

Html 保持视图状态,html,angularjs,angularjs-scope,Html,Angularjs,Angularjs Scope,我有一个应用程序,它基于一个简单的表单(带有选择选项)从数据库中过滤出对象,表单中的每一个更改我都会从服务器获得一个包含过滤对象的列表 当列表返回时,我用对象列表更新另一个视图,这样用户可以点击列表导航按钮,查看到目前为止过滤的内容 当用户返回到Filter nav选项时,该表单已丢失状态为,或丢失所选选项,并再次为空。我从不提交这样的表格 你如何保持表格的原有状态 这是我的表格: <form id="filter_form" onchange="angular.elemen

我有一个应用程序,它基于一个简单的表单(带有选择选项)从数据库中过滤出对象,表单中的每一个更改我都会从服务器获得一个包含过滤对象的列表

当列表返回时,我用对象列表更新另一个视图,这样用户可以点击列表导航按钮,查看到目前为止过滤的内容

当用户返回到Filter nav选项时,该表单已丢失状态为,或丢失所选选项,并再次为空。我从不提交这样的表格

你如何保持表格的原有状态

这是我的表格:

       <form id="filter_form" onchange="angular.element(this).scope().fileNameChanged(this)">
            <div ng-repeat="(key, value) in tags.tags.objects | groupBy:'category.name'">
                <div class="item item-divider">
                    {{ key }}
                </div>
                <label class="item item-input item-select" ng-repeat="(item_key, item) in value | groupBy:'subcategory.name'">
                    <div class="input-label">
                        {{ item_key }}
                    </div>
                    <select>
                        <option selected></option>
                        <option ng-repeat="option in item">
                            {{ option.description }}
                        </option>
                    </select>
              </label>      
            </div>
        </form>

{{key}}
{{item_key}}
{{option.description}}
表单如下所示:

更新

<ion-view>
  <ion-content class="padding">
    <div class="list">
        <form id="filter_form" onchange="angular.element(this).scope().fileNameChanged(this)" novalidate class="simple-form">
            <div ng-repeat="(key, value) in tags.tags.objects | groupBy:'category.name'">
                <div class="item item-divider">
                    {{ key }}
                </div>
                <label class="item item-input item-select" ng-repeat="(item_key, item) in value | groupBy:'subcategory.name'">
                    <div class="input-label">
                        {{ item_key }}
                    </div>
                    <select ng-model="tag" ng-options="option.description for option in item">
              </label>      
            </div>
        </form>
        <a class="button button-block button-positive" href="/#/tab/filter/advanced">Advanced</a>

    </div>
  </ion-content>
</ion-view>

{{key}}
{{item_key}}

只需将标记放入一个值:

yourModule.value('tag', {data: null});
在控制器中:

yourModule.controller('formCtrl', function($scope, tag) {
    $scope.tag = {data: null};
    if(tag)
        $scope.tag = tag;
    else
        formData = tag;
    // rest of your code
});
在html中,将select的ng模型更改为tag.data:

<select ng-model="tag.data" ng-options="option.description for option in item">


看到这个(简化)

那么你想记住所选的项目,并在加载包含表单的视图时再次设置它吗?是的,没错,我不认为需要再次设置它,那么呢?我不确定我将如何使用它,我很困惑,因为我的表单是在for循环中生成的。请查看我的更新代码。如果我理解正确,我可以将$scope.tag=[{“name”:“Fruit_Type”,“value”:“0”},{“name”:“Leaves_arrangement”,“value”:“,{“name”:“Leaves_Margin”,“value”:“?”,{“name”:“Leaves_Type”,“value”:“}填写表单,对吗?但是您选择的选项是nottag(或者在本例中是tag.data)。其思想是tag和$scope.tag引用相同的对象,这意味着如果一个对象得到更新,另一个也会得到更新。因此,当您选择一个选项时,它将在服务中结束,下次您用表单加载控制器时,它将返回到以前的状态。