0

我正面临一个在逻辑上不正确的可疑问题。在保存模型中,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带有 id的内容时,noteStatus只会隐藏在 tableview 中的所有 tablerows 上。无法弄清楚为什么它有问题。请指导我对其进行排序。

应用程序类型:Mobile Titanium SDK:3.1.2 平台:Android(Gynemotion)(也在我的设备 Galaxy SII 上)平台版本:4.1.1

4

1 回答 1

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">解决问题。不知道怎么解决的:)

于 2013-10-02T09:23:12.100 回答