新足迹

 找回密码
 注册

精华好帖回顾

· 蛋糕入门 -- 葡萄干玛芬 (2010-3-3) datou2z · 继续DIY : 57刀升级LAND CRUISER 音响. (2012-4-30) shangpin
· 赋予我另一种生活的六天——获得136签的感想,兼感谢信 (2007-1-13) purpleme · 分享自己今天刚做完的一个桌子和两个凳子(设计很独特) (2010-8-4) coleclark999
Advertisement
Advertisement
查看: 2019|回复: 25

Jquery template and datalink [复制链接]

发表于 2010-12-2 09:22 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
"Jquery template and datalink" is Microsoft's contribution to Jquery

http://infinity88.com/jquery-datalink/demo-contacts.html#

https://github.com/nje/jquery-datalink/

Our team members are using it, ...cool, much better than xsl template

评分

参与人数 5积分 +15 收起 理由
o2h2o + 3 谢谢奉献
澳贼 + 4 感谢分享
乱码 + 3 谢谢奉献

查看全部评分

Advertisement
Advertisement

特殊贡献奖章

发表于 2010-12-2 09:29 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
看了一下,这个挺实用的

最简单的用法

The link API allows you to very quickly and easily link fields of a form to an object. Any changes to the form fields are automatically pushed onto the object, saving you from writing retrieval code. By default, changes to the object are also automatically pushed back onto the corresponding form field, saving you from writing even more code. Furthermore, converters lets you modify the format or type of the value as it flows between the two sides (for example, formatting a phone number, or parsing a string to a number).

var person = {};
$("form").link(person);
$("#name").val("foo");
alert(person.name); // foo
// ... user changes value ...
alert(person.name); // <user typed value>
$(person).data("name", "bar");
alert($("#name").val()); // bar

想问一下这个$("form").link(person);里的form可以改成body吗?有时候不止一个form

发表于 2010-12-2 09:37 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 kr2000 于 2010-12-2 09:29 发表
看了一下,这个挺实用的

最简单的用法

The link API allows you to very quickly and easily link fields of a form to an object. Any changes to the form fields are automatically pushed onto the object, savi ...


when do the link, this way may be better
$(data_object)
       .linkBoth("name", "#name", "val")
       .linkBoth("phone", "#phone", "val");


datalink is very convenient for dropdownbox

Should be able to use any element id to replace "form1"

[ 本帖最后由 典 于 2010-12-2 09:43 编辑 ]

发表于 2010-12-2 09:40 |显示全部楼层
此文章由 cdfei 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cdfei 所有!转贴必须注明作者、出处和本声明,并保持内容完整
挺方便的

发表于 2010-12-2 09:42 |显示全部楼层

回复 3# 的帖子

此文章由 cdfei 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cdfei 所有!转贴必须注明作者、出处和本声明,并保持内容完整
为什么?

2010年度奖章获得者

发表于 2010-12-2 09:44 |显示全部楼层

回复 5# 的帖子

此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
you link fields to the data object.

so when fields value changes it will notify the data object

make perfect sense
Advertisement
Advertisement

发表于 2010-12-2 09:46 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 cdfei 于 2010-12-2 09:42 发表
为什么?


sorry, maybe misleading, just a feeling.  I don't have much experience of them, they are quite new stuff,
Hope you guys write more

发表于 2010-12-2 09:48 |显示全部楼层
此文章由 cdfei 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cdfei 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我是问,为什么对dropdownbox特别方便?

2010年度奖章获得者

发表于 2010-12-2 09:51 |显示全部楼层

回复 8# 的帖子

此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
he probably mean

A collection can be automatically populate into a dropdownbox by using the .link

2010年度奖章获得者

发表于 2010-12-2 09:53 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
the idea is exactly same as how data is bind to MVC's view

good job to MS for applying this to js

发表于 2010-12-2 09:55 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 cdfei 于 2010-12-2 09:48 发表
我是问,为什么对dropdownbox特别方便?


without datalink, we need to initiate dropdownbox with existed value,
for example:
document.getelementbyId("dropdown").value="John"
that wont work, more code required to achieve that. (I maybe wrong, not quite sure)

with datalink, we do nothing.
Advertisement
Advertisement

特殊贡献奖章

发表于 2010-12-2 10:08 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我现在正在搞一个form,想试试,结果搞了半天不work:si78

        var purchase = {};
        $("form").link(purchase);
        $("#existing_organisation_abn").val("foo");
        $(purchase).data("existing_organisation_abn", "bar");
        alert (purchase.existing_organisation_abn);
        alert ($("#existing_organisation_abn").val());

第一个alert是undifined
第二个是foo,也不是bar

特殊贡献奖章

发表于 2010-12-2 10:10 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 于 2010-12-2 10:55 发表


without datalink, we need to initiate dropdownbox with existed value,
for example:
document.getelementbyId("dropdown").value="John"
that wont work, more code required to achieve that. (I maybe wr ...

jquey可以直接用val()呀

评分

参与人数 1积分 +3 收起 理由
+ 3 我很赞同...

查看全部评分

2010年度奖章获得者

发表于 2010-12-2 10:12 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 kr2000 于 2010-12-2 11:08 发表
我现在正在搞一个form,想试试,结果搞了半天不work:si78

        var purchase = {};
        $("form").link(purchase);
        $("#existing_organisation_abn").val("foo");
        $(purchase).data("existing_organisation_abn", "b ...


referenced to jQuery.datalink.js?
足迹 Reader is phenomenal. If you never used, you never lived 火速下载

特殊贡献奖章

发表于 2010-12-2 10:17 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2010-12-2 11:12 发表


referenced to jQuery.datalink.js?

是呀,要不然会有link() undefined?
什么错都不报

发表于 2010-12-2 10:23 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
var purchase = {
"existing_organisation_abn": "bar"
};

please Try this, after ..._abn, use ":"
Advertisement
Advertisement

特殊贡献奖章

发表于 2010-12-2 10:28 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 于 2010-12-2 11:23 发表
var purchase = {
"existing_organisation_abn": "bar"
};

please Try this, after ..._abn, use ":"

加了这个,第一个alert就是bar了
第二个alert还是foo
感觉没有link

发表于 2010-12-2 10:28 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
My understand is, when you link,
(1) need to link element_id to attribute name
so need to link existing_organisation_abn to #existing_organisation_abn
(2) idealy the link script should be under $().ready

I am sure if you use
$(purchase)
   .linkBoth("existing_organisation_abn", "#existing_organisation_abn", "val")

under $().ready

it will work

[ 本帖最后由 典 于 2010-12-2 10:38 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1积分 +5 收起 理由
kr2000 + 5 谢谢奉献

查看全部评分

2010年度奖章获得者

发表于 2010-12-2 10:30 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 kr2000 于 2010-12-2 11:08 发表
我现在正在搞一个form,想试试,结果搞了半天不work:si78

        var purchase = {};
        $("form").link(purchase);
        $("#existing_organisation_abn").val("foo");
        $(purchase).data("existing_organisation_abn", "b ...


貌似他要 onvaluechange, data object 才有值的。

我这边工作的。
<input type="text" name="age" id="age" onclick="pop()" />

var person = { };
$("form").link(person);

function pop()
{
        alert(person.age);
}

评分

参与人数 1积分 +3 收起 理由
kr2000 + 3 谢谢奉献

查看全部评分

足迹 Reader is phenomenal. If you never used, you never lived 火速下载

2010年度奖章获得者

发表于 2010-12-2 10:32 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 于 2010-12-2 11:28 发表
My understand is, when you link,
(1) need to link element_id to attribute name
so need to link existing_organisation_abn to #existing_organisation_abn
(2) idealy the link script should be under $().re ...


no you don't need to.

我发现这个牛x的地方在, 你一旦把form.link(dataobject)

form 里所有的element会自动成为 dataobject 的成员。
足迹 Reader is phenomenal. If you never used, you never lived 火速下载

发表于 2010-12-2 10:39 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Please get an example from level 18
Advertisement
Advertisement

特殊贡献奖章

发表于 2010-12-2 10:53 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我考,我发现我的jquery版本太老
我的是1.4.2,换成最新的就可以了

奇怪的是典的文件也是1.4.2

发表于 2010-12-2 11:26 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
如果它template的语法格式跟mvc其中一个view engine的格式相同,比如他们现在主推的razor,就更好了,前后台都可以统一起来了。

之前好像有个jQuery plugin都可以把linq的语法来query against比较整装的json,也是很牛B

发表于 2010-12-2 16:28 |显示全部楼层
此文章由 o2h2o 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 o2h2o 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这个东西有个问题,他的js 貌似把那些 template 语法替换了
但是 如果client 端是个 native 的app, 例如python 啥的,脱离了浏览器的执行环境 ,就是 fetch html,做parse的
解析起来就麻烦了

不知道是好还是不好

退役斑竹

发表于 2010-12-3 10:57 |显示全部楼层

MS is pushing hard on Jquery

此文章由 阿Ka 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 阿Ka 所有!转贴必须注明作者、出处和本声明,并保持内容完整

发表于 2010-12-3 14:43 |显示全部楼层
此文章由 porcorosso 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 porcorosso 所有!转贴必须注明作者、出处和本声明,并保持内容完整
so many dot.net monkeys in oursteps
Advertisement
Advertisement

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部