Backbone.js 钛合金中带有where条件的问题特征

Backbone.js 钛合金中带有where条件的问题特征,backbone.js,titanium,titanium-mobile,fetch,titanium-alloy,Backbone.js,Titanium,Titanium Mobile,Fetch,Titanium Alloy,我的应用程序中有两个选择列表,都是来自DB的动态值。“到第二个拾取列表”中的值基于在“第一个拾取列表”中选择的值显示。因此,第一个选择列表的更改事件第二个选择列表的值应该在不刷新页面的情况下动态更改 我的代码如下: 控制器: $.picker.addEventListener('change',function(e){ languageid = e.row.title; alert("language is : "+ languageid); movie.fe

我的应用程序中有两个选择列表,都是来自DB的动态值。“到第二个拾取列表”中的值基于在“第一个拾取列表”中选择的值显示。因此,第一个选择列表的更改事件第二个选择列表的值应该在不刷新页面的情况下动态更改

我的代码如下:

控制器:

      $.picker.addEventListener('change',function(e){
    languageid = e.row.title;
    alert("language is : "+ languageid);
    movie.fetch({query: "SELECT * FROM movies WHERE id = '"+languageid+"';"});
    var column = Ti.UI.createPickerColumn();
    movie.each(function(model){
          var row = Ti.UI.createPickerRow({
                         title: model.get("movieName")
                     });
           column.addRow(row);
    });
    $.picker1.columns = [column];
   });
 <Alloy>
    <Collection src="UserLanguage"/>
    <Collection src="movies"/>
    <Window class="container">
    <Picker id="picker"/>
    <Picker id="picker1"/>
    </Window>
</Alloy>
".container": {
    backgroundColor:"black"
}

"#picker": {
    width: '90%',
    top: '25dp'
}

"#picker1": {
    width: '90%',
    top: '100dp'
}
查看:

      $.picker.addEventListener('change',function(e){
    languageid = e.row.title;
    alert("language is : "+ languageid);
    movie.fetch({query: "SELECT * FROM movies WHERE id = '"+languageid+"';"});
    var column = Ti.UI.createPickerColumn();
    movie.each(function(model){
          var row = Ti.UI.createPickerRow({
                         title: model.get("movieName")
                     });
           column.addRow(row);
    });
    $.picker1.columns = [column];
   });
 <Alloy>
    <Collection src="UserLanguage"/>
    <Collection src="movies"/>
    <Window class="container">
    <Picker id="picker"/>
    <Picker id="picker1"/>
    </Window>
</Alloy>
".container": {
    backgroundColor:"black"
}

"#picker": {
    width: '90%',
    top: '25dp'
}

"#picker1": {
    width: '90%',
    top: '100dp'
}
型号

exports.definition = {
    config : {
        "columns": {
            "id": "text",
            "movieName": "text"
        },
        "adapter": {
            "type": "sql",
            "collection_name": "movies"
        }
    }
};
屏幕截图结果


select roe计数正确,但文本不可见。为什么?

只需使用传递给fetch函数的查询参数:

$.picker.addEventListener('change',function(e){
    languageid = e.row.title;
    //alert("language is : "+ languageid);
    movie.fetch({query: "SELECT * FROM movie WHERE id = '"+languageid+"';"});
    var column = Ti.UI.createPickerColumn();
    movie.each(function(model){
          var row = Ti.UI.createPickerRow({
                         title: model.get("movieName");
                     });
           column.addRow(row);
    });
    $.picker1.columns = [column];
});

好的,让我们从头开始,因为当前的解决方案太混乱了

查看:(确保您有模型/Movies.js)


现在行显示正确,但行标题文本不可见。问题是什么。这是样式问题吗?问题可能在
movieName
属性中。名称正确吗?movieName属性没有问题。我已经更新了问题和截图。Plase建议我为什么文本不可见我不确定,但是
e.row.title
可能为空,不能为空。问题是为什么
e.row.title
为空(null)?那么
e.value
呢?我真的不知道您想做什么,但基本上这里的
params:[e.row.title]
必须是一些非空值。现在我没有得到错误,但在第二个选择列表中选择了2行,但由于某些原因,列标题不可见。只有空行显示了我在问题截图中附加的内容。为什么?试试console.log(“行标题:”+model.get(“movieName”)电影中的code>。每个
。它在标题中打印空[INFO]:行标题:空[INFO]:行标题:空