Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 主干木偶不是射击路线_Javascript_Backbone.js_Marionette - Fatal编程技术网

Javascript 主干木偶不是射击路线

Javascript 主干木偶不是射击路线,javascript,backbone.js,marionette,Javascript,Backbone.js,Marionette,我正在使用主干网和木偶网创建一个简单的应用程序。它只是获取Wordpress帖子列表(使用API)并显示它。 这是一个非常简单的应用程序,所以它不是模块化的 我有以下内容(都放在同一个文件中): 关于在naviagate上使用触发器: 这会鼓励糟糕的应用程序设计,强烈建议您不要这样做 将触发器:true传递到主干。历史记录。导航 我在这里遗漏了什么?移动这个 if ( Backbone.history ) Backbone.history.start({ pushState: false

我正在使用主干网和木偶网创建一个简单的应用程序。它只是获取Wordpress帖子列表(使用API)并显示它。 这是一个非常简单的应用程序,所以它不是模块化的

我有以下内容(都放在同一个文件中):

关于在naviagate上使用触发器:

这会鼓励糟糕的应用程序设计,强烈建议您不要这样做 将
触发器:true
传递到
主干。历史记录。导航

我在这里遗漏了什么?

移动这个

if ( Backbone.history )
    Backbone.history.start({ pushState: false });

if ( Backbone.history.fragment === '' )
    API.listAllPosts();
else
    API.listSinglePost( Backbone.history.fragment );
在应用程序启动点之后或在
初始化:事件处理程序之后

检查前一个问题:

移动此

if ( Backbone.history )
    Backbone.history.start({ pushState: false });

if ( Backbone.history.fragment === '' )
    API.listAllPosts();
else
    API.listSinglePost( Backbone.history.fragment );
在应用程序启动点之后或在
初始化:事件处理程序之后


检查前一个问题:

在创建路由器实例之前,启动主干历史记录

创建路由器后,只需将其移动到

MyBlog.addInitializer(function() {    
    new MyBlog.Router({ controller: API });

    // should be started after a router has been created
    Backbone.history.start({ pushState: false });
});
另一件事是回调或者您应该将
appRoutes
更改为
routes

批准
路线
之间的主要区别在于我们提供 在控制器上而不是直接在路由器本身上进行回调。 [...] 随着
批准者
扩展
主干路由器
,您还可以定义一个
路由
属性,其回调必须出现在
批准程序上


您可以在创建路由器实例之前启动主干历史记录

创建路由器后,只需将其移动到

MyBlog.addInitializer(function() {    
    new MyBlog.Router({ controller: API });

    // should be started after a router has been created
    Backbone.history.start({ pushState: false });
});
另一件事是回调或者您应该将
appRoutes
更改为
routes

批准
路线
之间的主要区别在于我们提供 在控制器上而不是直接在路由器本身上进行回调。 [...] 随着
批准者
扩展
主干路由器
,您还可以定义一个
路由
属性,其回调必须出现在
批准程序上


您是否在链接的
href
中使用哈希(
#
)历史记录?navigate()仅适用于链接?实际上我没有使用链接。我有一个无序列表,每个li元素都有一个按钮,该按钮附带一个点击事件。单击后,调用一个函数,然后调用Backbone.History.navigate('property-link-here')。我对使用链接做了一些更改。在单击事件时尝试使用/不使用href属性中的#和preventDefault(),但。。。不工作。我单击按钮,将显示单个帖子(URL更改),我单击“上一步”,URL将更改为/但单个帖子仍保留在页面上,而不是显示整个列表。是的,主干路由器仅适用于
中的链接或
触发器:true
。navigate()
,但是大多数时候,使用
触发器:true
是不好的做法<代码>主干。导航
仅更改
窗口。locationhash
不触发任何路由。昨天我对项目进行了一些更改,现在一切正常。我还将所有内容模块化,这样获取资源甚至理解代码就容易多了。谢谢你宝贵的帮助!您是否在链接的
href
中使用哈希(
#
)历史记录?navigate()仅适用于链接?实际上我没有使用链接。我有一个无序列表,每个li元素都有一个按钮,该按钮附带一个点击事件。单击后,调用一个函数,然后调用Backbone.History.navigate('property-link-here')。我对使用链接做了一些更改。在单击事件时尝试使用/不使用href属性中的#和preventDefault(),但。。。不工作。我单击按钮,将显示单个帖子(URL更改),我单击“上一步”,URL将更改为/但单个帖子仍保留在页面上,而不是显示整个列表。是的,主干路由器仅适用于
中的链接或
触发器:true
。navigate()
,但是大多数时候,使用
触发器:true
是不好的做法<代码>主干。导航
仅更改
窗口。locationhash
不触发任何路由。昨天我对项目进行了一些更改,现在一切正常。我还将所有内容模块化,这样获取资源甚至理解代码就容易多了。谢谢你宝贵的帮助!谢谢你@Emile Bergeron!它正在返回并显示我的帖子列表。问题在于使用appRoutes而不是routes,以及我称之为appRoutes的方式。感谢任何人的进步!谢谢你@Emile Bergeron!它正在返回并显示我的帖子列表。问题在于使用appRoutes而不是routes,以及我称之为appRoutes的方式。感谢任何人的进步!