23t*_*tux 7 ruby-on-rails backbone.js
我正在尝试Backbone.js和rails应用程序.我的问题是,我不知道如何使用我的rails应用程序实现Backbone控制器和视图.我已经阅读了很多教程,但他们总是在backbone.js中只使用一个控制器.
例如,我在轨道中有两个控制器.
而另一个是
在我的application.js中,我使用启动应用程序
var App = {
Views: {},
Controllers: {},
Collections: {},
init: function() {
new App.Controllers.Activities();
new App.Controllers.Users();
Backbone.history.start();
}
};
$(function() {
App.init();
});
Run Code Online (Sandbox Code Playgroud)
问题是,我不需要我的用户配置文件中的活动控制器和Rails活动控制器中的用户控制器.我该怎么解决这个问题?我应该尝试在javascript中读取当前的URL,然后决定使用哪个控制器吗?或者我应该将JavaScript文件放入application.html.erb然后决定应该使用哪个控制器?
或者这是使用backbone.js控制器的错误方法?
我对backbone.js的结构有点错误吗?或者我是以错误的方式使用控制器?
另一个问题是,如何通过Backbone.js添加小JavaScript,特别是jQuery功能?例如,当用户单击该字段时,我想删除字段内的标签.或者我想做一些标签功能,只是切换一些元素的可见性.我应该为每个使用javascript的元素创建一个Backbone视图吗?或者这是否过载?
希望我明确表示,任何人都可以提供帮助,谢谢!
为什么不利用 Backbone 提供的路由功能来决定调用哪个方法呢?活动控制器将仅包含用于活动的路由,仅用于用户处理的用户控制器,等等。\n像这样,您可以像您一样实例化控制器,路由将根据当前位置决定发生什么情况\'的哈希值。
\n\n如果您无法使用带有哈希值的链接(或者您的页面上没有此类链接),我只需将视图容器命名得足够具体,以便在需要时仅为当前视图附加事件。
\n\nIMO 中的 jQuery 插件等属于视图。您的选项卡和输入提示切换也是如此。
\n\n更新
\n\n一般而言(我不一定建议这样做):如果您有两种方法:
\n\n// should be only called for the \'Foo\' controller\nfunction foo() {\n alert("FOO");\n};\n\n// should be only called for the \'Bar\' controller\nfunction bar() {\n alert("BAR");\n};\nRun Code Online (Sandbox Code Playgroud)\n\n并且想要根据当前的 Rails 控制器仅调用其中一个,请创建一个小助手:
\n\n例如在你*helpers/application_helper.rb*
\n\ndef body_class\n controller.controller_name\nend\nRun Code Online (Sandbox Code Playgroud)\n\n然后在布局文件(或标题部分)中调用此方法:
\n\n<body class="<%= body_class %>">\n\xe2\x80\xa6\nRun Code Online (Sandbox Code Playgroud)\n\n并使用例如 jQuery 来“分割”你的 JS 执行:
\n\nif ($(\'body\').hasClass(\'foo\')) {\n foo();\n} else if ($(\'body\').hasClass(\'bar\')) {\n bar();\n} \nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
4936 次 |
| 最近记录: |