max*_*dbe 40 javascript-framework knockout.js
来自asp.net MVC 3.在MVC4中,他们介绍了WebAPI.能够在javascript中完成所有视图/路由代码并且只依赖于MVC for API会很高兴.非常酷,webapi可以独立于IIS运行!
话虽如此:
是否有任何页面框架可以利用KnockoutJS,它类似于我的模型如下:
Framework.RegisterRoutes(..,mainViewModel);//sets the CurrentViewModel?
Run Code Online (Sandbox Code Playgroud)
每个路由都是viewModel的单独文件,以及要注入主视图的视图
var mainviewModel= function(){
var self = this;
self.CurrentViewModel = ko.observable();
...
return self;
}
<div id="mainPageContent" data-bind:'html:CurrentViewModel.Render'>
</div>
Run Code Online (Sandbox Code Playgroud)
我知道很多这可以通过self实现,但不知道如何实现寄存器路由/加载单独的文件
我觉得knockoutjs的主要优点是能够不干涉你编码js的方式(即只要交互对象可观察就构建一个对象/框架你想要的方式)
Jam*_*ger 45
Pager.js是专为与Knockout.js一起使用而构建的URL路由框架.确保您完成整个演示,以了解其全部功能和灵活性.恕我直言,它远远超过了PathJS和Sammy.
Joh*_*apa 20
Sammy.js是一个优秀的轻量级路由JavaScript库.你可以做这样的事情来与Knockout一起使用时进行路由(来自教程网站或KnockoutJS):
$.sammy(function() {
this.get('#:folder', function() {
self.chosenFolderId(this.params.folder);
self.chosenMailData(null);
$.get("/mail", { folder: this.params.folder }, self.chosenFolderData);
});
this.get('#:folder/:mailId', function() {
self.chosenFolderId(this.params.folder);
self.chosenFolderData(null);
$.get("/mail", { mailId: this.params.mailId }, self.chosenMailData);
});
this.get('', function() {
this.app.runRoute('get', '#Inbox');
});
}).run();
Run Code Online (Sandbox Code Playgroud)
另一个选择是使用SproutCore,但它远远超过nav,所以除非你想要所有的SproutCore,否则我不推荐这条路线.还有很多其他的库,但到目前为止我喜欢Sammy.js,因为它的重量很轻.
我想通过ko-component-router向未来的Google员工/ SOers投入使用.
IMO API比Pager.js简洁得多,并且已经为KO明确设计,它内置了可观察路径和查询字符串参数等内容.
最重要的是,它是积极维护的,并将在可预见的未来中保持这种状态.
免责声明:我是这个软件包的开发者.
| 归档时间: |
|
| 查看次数: |
40739 次 |
| 最近记录: |