ng-if中的条件在变量中变为false后变为false

时间:2016-09-09 19:02:33

标签: javascript angularjs ionic-framework

我正在制作一个问题编辑器,我有一个页面,其中打印了当前问题及其答案。有三种类型的问题,因此,我需要不同类型的不同字段。

在编辑器的页面上有一个Select(用于更改类型),然后是带有答案的离子列表。根据所选的问题类型,每个答案都是ion-item,其标签带有ng-if(已尝试ng-show)。类型首先来自mySQL DB。

问题是,init之后的页面正确显示了所有字段,但是当我更改问题类型时,我看到的只是没有ng-if的字段。我尝试重新加载视图,在Select上设置ng-change(带$state.reload的功能),但它没有帮助。 现在代码:

选择

<select 
      ng-model="question.type" ng-options="type.id for type in types"
      ng-change="onTypeChange(question)">               
</select>

其中一个离子项:

<ion-list>
    <ion-item ng-repeat="answer in answers">
       <label ng-if="question.type == 1 || question.type == 4" 
              class="item item-input item-stacked-label">
          <span class="input-label">Ответ:</span>
          <input type="text" placeholder={{answer.answer}} ng-   model="answer.answer">
       </label>
    </ion-item>
</ion-list>

onTypeChange():

$scope.onTypeChange = function(question){
    var typeUpdateQuery = 'UPDATE `questions` SET "type" = "' + question.type.id + '" WHERE "id" = ' + question.id;
    $cordovaSQLite.execute(db, typeUpdateQuery).then(
        function(){
            $scope.answers=[];
            $scope.openQuestion();
            $state.reload();
        }, function (err){
            error(err);
        }
    );
}

openQuestion预加载视图的数据,只是从数据库中取出(填写answers[]),没什么特别的。

那么,我该怎么办?

0 个答案:

没有答案