【发布时间】:2016-08-09 03:36:55
【问题描述】:
我是 Javascript/backboneJS/RequireJS 的新手。为了呈现我的前端,我制作了一个控制器、一个模型和一个视图。另外,我的 html 文件中有一个下拉菜单。
所以到目前为止我所做的是在我的 html 文件中,我有
require(['common'],function()
{
require(['jquery','fastclick','nprogress','charts','underscore','spinner'],function()
{
require(['firstDashboardController']);
});
});
所以我正在加载“firstDashboardController”,这个控制器会相应地加载所有模块并在前端显示数据。所以一切正常。
现在我在前端有一个下拉菜单。当我选择下拉列表时,根据选择的 id 我想检索数据。所以我需要再次调用“firstDashboardController”,以便根据我获得的新 ID 渲染所有内容。
那我该怎么办?就像我是否需要取消要求我的“firstDashboardController”然后再次要求它传递新的ID。因为控制器已经通过 Require 加载,因为我将它加载到我的 HTML 文件中,如上所述。但是我需要根据通过下拉列表选择的新 ID 再次加载它。那么该怎么做呢?请帮助我。如果需要任何代码 sn-p 我可以输入。
代码片段:
我的控制器:
define(['backbone', 'firstSubViewModel','dropdownViewModel', 'dropdownModel'],
function(Backbone, firstSubViewModel, dropdownViewModel, dropdownModel) {
var ch = new dashboardModel.chart({});
if (localStorage.getItem('p_kt') && localStorage.getItem('p_acid') && localStorage.getItem('p_seid')) {
var data = {
tokenProp: localStorage.getItem('p_kt'),
accountIdProp: localStorage.getItem('p_acid'),
sessionIdProp: localStorage.getItem('p_seid')
};
$.when(
ch.fetch(data) // GETTING DATA FROM MODEL VIA AJAX CALL in my model.JS
).then(function() {
// Main Graph on Dashboard
new firstSubViewModel({
el: '#chartAnchor1',
model: ch
});
});});
不知何故,我需要再次致电ch.fetch()。
【问题讨论】:
标签: javascript html backbone.js requirejs