我面临一个可疑的问题,这在逻辑上是不正确的。在保存模型中,tablerow中的一些元素隐藏。
以下是观看代码noteRow.xml
<Alloy>
<TableViewRow id="noteRow">
<View class="noteRowSeperator"></View>
<View id="noteRowContainer">
<View class="noteSideBox">
<ImageView id="noteStatus" onClick="toggleStatus"></ImageView>
</View>
<View class="noteContentBox">
<Label class="noteDescription" text="{description}"/>
</View>
</View>
<View class="noteRowSeperator"></View>
</TableViewRow>
</Alloy>
以下是控制器代码noteRow.js
var moment = require('alloy/moment');
var id;
if ($model) {
id = $model.id;
if ($model.get('done')) {
$.noteRowContainer.opacity = 0.5;
$.noteStatus.image = '/images/status_completed.png';
} else {
$.noteRowContainer.opacity = 1;
$.noteStatus.image = '/images/status_not_completed.png';
}
}
function toggleStatus(e) {
alert(id);
var note = Alloy.Collections.note.get(id);
note.set({
"done": note.get('done') ? 0 : 1,
"completed_at": moment().format('X'),
"updated_at": moment().format('X')
}).save();
}
当模型保存标识为ImageView
的所有noteStatus
时,只需隐藏tableview中的所有表格。无法弄清楚为什么会有这个问题。请指导我对它进行排序。
应用程序类型:移动 Titanium SDK:3.1.2 平台:Android(Gynemotion)(也在我的设备Galaxy SII上) 平台版本:4.1.1
答案 0 :(得分:1)
我终于明白了。问题出在view
上。我将视图更新为。
<Alloy>
<TableViewRow id="noteRow">
<View class="noteRowSeperator"></View>
<View id="noteRowContainer">
<ImageView id="noteStatus" onClick="toggleStatus"></ImageView>
<View class="noteContentBox">
<Label class="noteDescription" text="{description}"/>
</View>
</View>
<View class="noteRowSeperator"></View>
</TableViewRow>
</Alloy>
意味着只需删除<View class="noteSideBox">
即可解决问题。不知道怎么回事了。)