我正在制作一个问题编辑器,我有一个页面,其中打印了当前问题及其答案。有三种类型的问题,因此,我需要不同类型的不同字段。
在编辑器的页面上有一个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[]
),没什么特别的。
那么,我该怎么办?