gpt4 book ai didi

asp.net-mvc - Sammy.js 和 Knockout.js => 没有模板的模板?

转载 作者:行者123 更新时间:2023-12-04 10:01:23 25 4
gpt4 key购买 nike

我对javascript客户端开发的概念相当陌生。我遇到了一个问题,尽管我可能只是不明白如何使用框架的混搭来完成某些事情。

我知道我想使用 Knockout 来获得丰富的客户端优势。我还想使用 Sammy.js 来允许将数据路由和传递给 knockout View (我来自 MVC 背景,我用数据填充模型,然后返回 View (模型),MVC 将它绑定(bind)得很好,对我有好处) .

所以现在我正在尝试做一些类似的客户端......

这是我的 Index.html :

<!DOCTYPE html>

<html>
<head>
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>

<title>The EClassifieds Mobile</title>



<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js"></script>
<!-- <script type="text/javascript" src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>-->
<script type="text/javascript" charset="utf-8" src="./scripts/cordova-1.8.1.js"></script>
<script type="text/javascript" charset="utf-8" src="./scripts/knockout.js"></script>
<script type="text/javascript" charset="utf-8" src="./scripts/templ.js"></script>
<script type="text/javascript" charset="utf-8" src="./scripts/sammy.js"></script>
<script type="text/javascript" charset="utf-8" src="./scripts/sammy.tmpl.js"></script>
<script type="text/javascript" charset="utf-8" src="./services/RouteManager.js"></script>
<script type="text/javascript" charset="utf-8" src="./services/ApplicationManager.js"></script>


<link rel="stylesheet" href="./style/site.css" type="text/css" media="screen" title="no title" charset="utf-8"/>
<!-- <link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" />-->

</head>
<body>

<div id="main">
<h1>HELLO WORLD!</h1>
<!--Sammy should update the content of this div dynamically, creating a SPA (single page application)-->
</div>

</body>
</html>

这是我的 Sammy 配置。
(function ($) {

alert('Building Routes');
var app = $.sammy('#main', function () {
this.use('Tmpl', 'html');
this.get('#/', function (context) {
alert('Rendering Partial for Login page');
context.app.swap('Loading...');
this.render("/views/Login.html");
});

});

$(function () {
app.run('#/');
});

})(jQuery);

这是我的 Login.html
 <!--Model File Goes Here -->
<script type="text/javascript" charset="utf-8" src="../models/Login.js"></script>

<fieldset title="Please Login to Begin :">

<div data-role="content" style="padding: 15px">
<div data-role="fieldcontain">
<fieldset data-role="controlgroup" data-mini="true">
<label for="txtUsername">
Username
</label>
<input id="txtUsername" data-bind="value: username" placeholder="Stevie" value="" type="text" />
</fieldset>
</div>
<div data-role="fieldcontain">
<fieldset data-role="controlgroup" data-mini="true">
<label for="txtPassword">
Password
</label>
<input id="txtPassword" data-bind="value: password" placeholder="yep!" value="" type="password" />
</fieldset>
</div>
<a id="btnLogin" data-role="button" data-transition="fade" href="#page1" >
Login
</a>
</div>

<div id="errorText">
<h1></h1>
</div>

<p id="deviceProperties">Loading device properties...</p>

</fieldset>

<script type="text/javascript">
$(document).ready(function () {
ko.applyBindings(new LoginDataModel(0, "Stevie", "theTV", true));

});

</script>

我还需要一些方法将数据从 sammy get 处理程序传递到 knockout 页面。有没有办法做到这一点,还是我在尝试不可能的事情?

更新 1:
我真的很想能够做类似的事情:
  var app = $.sammy('#main', function () {
this.use('Tmpl', 'html');
this.get('#/', function (context) {
alert('Rendering Partial for Login page');
context.app.swap('Loading...');
var data = getLoginData();
this.render("/views/Login.html", data);
});

Sammy 使用其他模板框架做同样的事情,但是,我看不到如何将 Knockout View 中的 $data 绑定(bind)到从 Sammy 传递的数据。

最佳答案

不确定你是否看到了这个,但是 knockoutjs 网站上的 webmail 教程使用 sammy.js 进行路由:

http://learn.knockoutjs.com/#/?tutorial=webmail

这是成品的链接(如果您不想遵循整个教程,可以查看源代码)
http://learn.knockoutjs.com/WebmailExampleStandalone.html

关于asp.net-mvc - Sammy.js 和 Knockout.js => 没有模板的模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11250958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com