保存模型会在tableview中隐藏imageview

时间:2013-09-30 12:29:32

标签: backbone.js titanium titanium-mobile titanium-alloy

我面临一个可疑的问题,这在逻辑上是不正确的。在保存模型中,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

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">即可解决问题。不知道怎么回事了。)