如何使用backbone.js上HTTP POST请求的结果实现级联下拉列表

如何使用backbone.js上HTTP POST请求的结果实现级联下拉列表,backbone.js,backbone-views,backbone-events,backbone-routing,netsuite,Backbone.js,Backbone Views,Backbone Events,Backbone Routing,Netsuite,有一个地址视图,它呈现一个包含基本地址字段的表单,包括邮政编码文本框和城市/郊区下拉列表。理想情况下,当用户键入邮政编码时,“城市”下拉列表应自动填充该邮政编码下的“城市/郊区”值。我知道有人已经提出了一个关于级联下拉列表的问题,但是这在某种程度上是不同的,我希望通过调用HTTP Get请求来获取城市/郊区的值 如何使用backbone.js实现它?我做了一些事情,但我觉得这是错误的。我所做的是添加了一个函数,该函数将填充一个集合,并在调用更新下拉列表的宏时将该集合作为参数返回。代码如下 Add

有一个地址视图,它呈现一个包含基本地址字段的表单,包括邮政编码文本框和城市/郊区下拉列表。理想情况下,当用户键入邮政编码时,“城市”下拉列表应自动填充该邮政编码下的“城市/郊区”值。我知道有人已经提出了一个关于级联下拉列表的问题,但是这在某种程度上是不同的,我希望通过调用HTTP Get请求来获取城市/郊区的值

如何使用backbone.js实现它?我做了一些事情,但我觉得这是错误的。我所做的是添加了一个函数,该函数将填充一个集合,并在调用更新下拉列表的宏时将该集合作为参数返回。代码如下

Address.Model.js中的代码片段

...

 , updateCities:function(){

        var suburb = Backbone.Model.extend({
        });

        var SuburbCollection = Backbone.Collection.extend({
          model: suburb,
          url:"http link to get the suburbs list"
        });

        var SubCol = new SuburbCollection();

        SubCol.fetch();
        return SubCol;
} 
... 
citiesDropdown宏的代码片段

<% registerMacro('citiesDropdown', function (options) { %>
<%
    var suburbs= options.cities;

%>
    <label class="control-label" for="<%= options.manage ? options.manage : ''%>state">
        <%= _('City').translate() %>
        <small><%= _('(required)').translate() %></small>
    </label>
    <div class="controls">
        <select class="input-xlarge" id="<%= options.manage ? options.manage : ''%>city" name="city" data-type="city">
            <option value="">
                <%= _('-- Select --').translate() %>
            </option>
            <% _.each(suburbs, function (suburb) { %>
            <option>
                <%= suburb.name %>
            </option>
            <% }) %>
        </select>
    </div>

<% }) %>

我为各国及其地区做了非常类似的事情

如果这可以帮助你,我已经提取了我的代码

select输入用装饰,但如果不需要,则应易于删除

...
, events: {
...
   ,'blur input[data-type="zip"]': 'updateCity'
...


, updateCity: function (e)
    {
        this.$('[data-type="city"]').closest('.control-group').empty().append(
            SC.macros.citiesDropdown({
                cities: this.model.updateCities()
            })
        );
    }
....